home *** CD-ROM | disk | FTP | other *** search
/ Linux Cubed Series 3: Developer Tools / Linux Cubed Series 3 - Developer Tools.iso / devel / lang / eiffel / smalleif.97 / se.t / SmallEiffel / bin_c / pretty5.c < prev    next >
Encoding:
C/C++ Source or Header  |  1996-05-02  |  100.5 KB  |  4,801 lines

  1. /* ANSI C code generated by SmallEiffel. */
  2. /*
  3. -- SmallEiffel  -- Release (- 0.97)    --      FRANCE
  4. -- Copyright (C), 1994 - Dominique COLNET and Suzanne COLLIN 
  5. -- University Henri Poincare' - Nancy 1 - email colnet@loria.fr 
  6. -- CRIN (Centre de Recherche en Informatique de Nancy)
  7. -- FRANCE 
  8. */
  9. #include "pretty.h"
  10. T0 * rT49to_call(/*C*/T0 * a1,T0 * a2,T0 * a3){
  11. T0 * R=NULL;
  12. /*IF*/if (!(a2)) {
  13. R=a1;
  14. }
  15.  else if (!(a3)) {
  16. {T161 *n=((T161*)new(161));
  17. rT161make(n,a1,a2);
  18. R=(T0 *)n;}}
  19.  else if ((rT168count((T168*)a3))==(1)) {
  20. {T172 *n=((T172*)new(172));
  21. rT172make(n,a1,a2,a3);
  22. R=(T0 *)n;}}
  23. else {
  24. {T173 *n=((T173*)new(173));
  25. rT173make(n,a1,a2,a3);
  26. R=(T0 *)n;}}
  27. /*FI*/return R;
  28. }
  29. int rT49a_e10(T49 *C){
  30. int R=0;
  31. /*IF*/if (rT49a_strip(C)) {
  32. R=1;
  33. }
  34.  else if (rT49skip1(C,'\50')) {
  35. R=1;
  36. /*IF*/if (rT49a_expression(C)) {
  37. /*IF*/if (rT49skip1(C,'\51')) {
  38. rT49a_r10(C,0,(C)->_last_expression,NULL,NULL);
  39. }
  40. else {
  41. rT49fcp(C,(T0 *)ms299);
  42. }
  43. /*FI*/}
  44. else {
  45. rT49fcp(C,(T0 *)ms300);
  46. }
  47. /*FI*/}
  48.  else if (rT49a_manifest_constant(C)) {
  49. C->_last_expression=(C)->_last_manifest_constant;
  50. R=1;
  51. /*IF*/if (rT49skip1unless2(C,'\56','\56')) {
  52. rT49wcp(C,(T0 *)ms301);
  53. rT49a_after_a_dot(C,0,(C)->_last_expression);
  54. }
  55. /*FI*/}
  56.  else if (rT49a_identifier(C)) {
  57. R=1;
  58. /*IF*/if (((((rT49a_result(C))||(rT49a_current(C)))||(rT49a_void(C)))||(rT49a_local_variable(C)))||(rT49a_argument(C))) {
  59. rT49a_r10(C,0,(C)->_last_expression,NULL,NULL);
  60. }
  61. else {
  62. rT49a_function_call(C);
  63. }
  64. /*FI*/}
  65. /*FI*/return R;
  66. }
  67. void rT49a_assignment_aux(T49 *C,int a1){
  68. T0 * _rhs=NULL;
  69. T0 * _writable=NULL;
  70. /*IF*/if (rT49a_current(C)) {
  71. /*UT*/(T43*)oRBC27eh;
  72. rT43add_position(XrT66start_position((C)->_last_expression));
  73. rT49fatal_error((T0 *)ms389);
  74. }
  75.  else if (rT49a_void(C)) {
  76. /*UT*/(T43*)oRBC27eh;
  77. rT43add_position(rT67start_position((T67*)rT49tmp_name()));
  78. rT49fatal_error((T0 *)ms390);
  79. }
  80.  else if (rT49a_argument(C)) {
  81. /*UT*/(T43*)oRBC27eh;
  82. rT43add_position(XrT66start_position((C)->_last_expression));
  83. rT49fatal_error((T0 *)ms391);
  84. }
  85. else {
  86. /*IF*/if (rT7same_as((T7*)(T0 *)ms291,((T67*)rT49tmp_name())->_to_string)) {
  87. /*IF*/if (!((C)->_function_type)) {
  88. rT49error(rT67start_position((T67*)rT49tmp_name()),(T0 *)ms392);
  89. }
  90. /*FI*/_writable=rT67to_e_result((T67*)rT49tmp_name());
  91. }
  92.  else if (rT49a_local_variable(C)) {
  93. _writable=(C)->_last_expression;
  94. }
  95. else {
  96. _writable=rT67to_feature_name((T67*)rT49tmp_name());
  97. }
  98. /*FI*//*IF*/if (rT49a_expression(C)) {
  99. _rhs=(C)->_last_expression;
  100. /*IF*/if (a1) {
  101. {T246 *n=((T246*)new(246));
  102. rT246make(n,_writable,_rhs);
  103. C->_last_instruction=(T0 *)n;}}
  104. else {
  105. {T247 *n=((T247*)new(247));
  106. rT247make(n,_writable,_rhs);
  107. C->_last_instruction=(T0 *)n;}}
  108. /*FI*/}
  109. else {
  110. rT49fcp(C,(T0 *)ms393);
  111. }
  112. /*FI*/}
  113. /*FI*/}
  114. int rT49a_assignment_or_call(T49 *C){
  115. int R=0;
  116. /*IF*/if ((rT49skip1(C,'\50'))&&(rT49a_expression(C))) {
  117. R=1;
  118. /*IF*/if (rT49skip1(C,'\51')) {
  119. rT49a_r10(C,1,(C)->_last_expression,NULL,NULL);
  120. }
  121. else {
  122. rT49fcp(C,(T0 *)ms388);
  123. }
  124. /*FI*/}
  125.  else if (rT49a_identifier(C)) {
  126. R=1;
  127. /*IF*/if (rT49skip2(C,'\72','\75')) {
  128. rT49a_assignment_aux(C,1);
  129. }
  130.  else if (rT49skip2(C,'\77','\75')) {
  131. rT49a_assignment_aux(C,0);
  132. }
  133.  else if ((((rT49a_current(C))||(rT49a_result(C)))||(rT49a_local_variable(C)))||(rT49a_argument(C))) {
  134. rT49a_r10(C,1,(C)->_last_expression,NULL,NULL);
  135. }
  136. else {
  137. rT49a_procedure_call(C);
  138. }
  139. /*FI*/}
  140. /*FI*/return R;
  141. }
  142. T0* rT49a_assertion(T49 *C){
  143. T0* R=NULL;
  144. int _state=0;
  145. T0 * _assertion=NULL;
  146. T0 * _expression=NULL;
  147. T0 * _tag=NULL;
  148. while (!((_state)>(3))) {
  149. {int iv1=_state;
  150. if (0 == iv1) goto l59;
  151. goto l60;
  152.  l59: ;
  153. /*IF*/if (((C)->_cc)==('\73')) {
  154. rT49wcp(C,(T0 *)ms236);
  155. C->_ok=rT49skip1(C,'\73');
  156. /*IF*/if (((int)(C)->_last_comments)) {
  157. {T62 *n=((T62*)new(62));
  158. rT62make(n,NULL,NULL,rT49get_comments(C));
  159. _assertion=(T0 *)n;}
  160. /*IF*/if (!(R)) {
  161. R=ma(156,0,1,_assertion);
  162. }
  163. else {
  164. rT156add_last((T156*)R,_assertion);
  165. }
  166. /*FI*/}
  167. /*FI*/}
  168.  else if (rT49a_tag_mark(C)) {
  169. _tag=(C)->_last_tag_mark;
  170. _state=1;
  171. }
  172.  else if (rT49a_expression(C)) {
  173. _expression=(C)->_last_expression;
  174. _state=2;
  175. }
  176. else {
  177. _state=4;
  178. }
  179. /*FI*/goto l58;
  180.  l60: ;
  181. if (1 == iv1) goto l61;
  182. goto l62;
  183.  l61: ;
  184. /*IF*/if (rT49skip1(C,'\73')) {
  185. {T62 *n=((T62*)new(62));
  186. rT62make(n,_tag,NULL,rT49get_comments(C));
  187. _assertion=(T0 *)n;}
  188. /*IF*/if (!(R)) {
  189. R=ma(156,0,1,_assertion);
  190. }
  191. else {
  192. rT156add_last((T156*)R,_assertion);
  193. }
  194. /*FI*/_state=0;
  195. }
  196.  else if (rT49a_tag_mark(C)) {
  197. {T62 *n=((T62*)new(62));
  198. rT62make(n,_tag,NULL,rT49get_comments(C));
  199. _assertion=(T0 *)n;}
  200. /*IF*/if (!(R)) {
  201. R=ma(156,0,1,_assertion);
  202. }
  203. else {
  204. rT156add_last((T156*)R,_assertion);
  205. }
  206. /*FI*/_tag=(C)->_last_tag_mark;
  207. }
  208.  else if (rT49a_expression(C)) {
  209. _expression=(C)->_last_expression;
  210. _state=3;
  211. }
  212. else {
  213. {T62 *n=((T62*)new(62));
  214. rT62make(n,_tag,NULL,rT49get_comments(C));
  215. _assertion=(T0 *)n;}
  216. /*IF*/if (!(R)) {
  217. R=ma(156,0,1,_assertion);
  218. }
  219. else {
  220. rT156add_last((T156*)R,_assertion);
  221. }
  222. /*FI*/_state=4;
  223. }
  224. /*FI*/goto l58;
  225.  l62: ;
  226. if (2 == iv1) goto l63;
  227. goto l64;
  228.  l63: ;
  229. /*IF*/if (rT49skip1(C,'\73')) {
  230. {T62 *n=((T62*)new(62));
  231. rT62make(n,NULL,_expression,rT49get_comments(C));
  232. _assertion=(T0 *)n;}
  233. /*IF*/if (!(R)) {
  234. R=ma(156,0,1,_assertion);
  235. }
  236. else {
  237. rT156add_last((T156*)R,_assertion);
  238. }
  239. /*FI*/_state=0;
  240. }
  241.  else if (rT49a_tag_mark(C)) {
  242. {T62 *n=((T62*)new(62));
  243. rT62make(n,NULL,_expression,rT49get_comments(C));
  244. _assertion=(T0 *)n;}
  245. /*IF*/if (!(R)) {
  246. R=ma(156,0,1,_assertion);
  247. }
  248. else {
  249. rT156add_last((T156*)R,_assertion);
  250. }
  251. /*FI*/_tag=(C)->_last_tag_mark;
  252. _state=1;
  253. }
  254.  else if (rT49a_expression(C)) {
  255. {T62 *n=((T62*)new(62));
  256. rT62make(n,NULL,_expression,rT49get_comments(C));
  257. _assertion=(T0 *)n;}
  258. /*IF*/if (!(R)) {
  259. R=ma(156,0,1,_assertion);
  260. }
  261. else {
  262. rT156add_last((T156*)R,_assertion);
  263. }
  264. /*FI*/_expression=(C)->_last_expression;
  265. _state=2;
  266. }
  267. else {
  268. {T62 *n=((T62*)new(62));
  269. rT62make(n,NULL,_expression,rT49get_comments(C));
  270. _assertion=(T0 *)n;}
  271. /*IF*/if (!(R)) {
  272. R=ma(156,0,1,_assertion);
  273. }
  274. else {
  275. rT156add_last((T156*)R,_assertion);
  276. }
  277. /*FI*/_state=4;
  278. }
  279. /*FI*/goto l58;
  280.  l64: ;
  281. /*IF*/if (rT49skip1(C,'\73')) {
  282. {T62 *n=((T62*)new(62));
  283. rT62make(n,_tag,_expression,rT49get_comments(C));
  284. _assertion=(T0 *)n;}
  285. /*IF*/if (!(R)) {
  286. R=ma(156,0,1,_assertion);
  287. }
  288. else {
  289. rT156add_last((T156*)R,_assertion);
  290. }
  291. /*FI*/_state=0;
  292. }
  293.  else if (rT49a_tag_mark(C)) {
  294. {T62 *n=((T62*)new(62));
  295. rT62make(n,_tag,_expression,rT49get_comments(C));
  296. _assertion=(T0 *)n;}
  297. /*IF*/if (!(R)) {
  298. R=ma(156,0,1,_assertion);
  299. }
  300. else {
  301. rT156add_last((T156*)R,_assertion);
  302. }
  303. /*FI*/_tag=(C)->_last_tag_mark;
  304. _state=1;
  305. }
  306.  else if (rT49a_expression(C)) {
  307. {T62 *n=((T62*)new(62));
  308. rT62make(n,_tag,_expression,rT49get_comments(C));
  309. _assertion=(T0 *)n;}
  310. /*IF*/if (!(R)) {
  311. R=ma(156,0,1,_assertion);
  312. }
  313. else {
  314. rT156add_last((T156*)R,_assertion);
  315. }
  316. /*FI*/_expression=(C)->_last_expression;
  317. _state=2;
  318. }
  319. else {
  320. {T62 *n=((T62*)new(62));
  321. rT62make(n,_tag,_expression,rT49get_comments(C));
  322. _assertion=(T0 *)n;}
  323. /*IF*/if (!(R)) {
  324. R=ma(156,0,1,_assertion);
  325. }
  326. else {
  327. rT156add_last((T156*)R,_assertion);
  328. }
  329. /*FI*/_state=4;
  330. }
  331. /*FI*/ l58: ;
  332. }
  333. }
  334. return R;
  335. }
  336. void rT49a_formal_arg_list(T49 *C){
  337. int _state=0;
  338. T0* _list=NULL;
  339. T0 * _declaration=NULL;
  340. T0* _name_list=NULL;
  341. T0 * _name=NULL;
  342. T0 * _sp=NULL;
  343. C->_arguments=NULL;
  344. while (!((_state)>(5))) {
  345. {int iv1=_state;
  346. if (0 == iv1) goto l66;
  347. goto l67;
  348.  l66: ;
  349. /*IF*/if (rT49skip1(C,'\50')) {
  350. {T44 *n=((T44*)new(44));
  351. rT44make(n,(C)->_start_line,(C)->_start_column);
  352. _sp=(T0 *)n;}
  353. _state=1;
  354. }
  355. else {
  356. _state=6;
  357. }
  358. /*FI*/goto l65;
  359.  l67: ;
  360. if (1 == iv1) goto l68;
  361. goto l69;
  362.  l68: ;
  363. /*IF*/if (rT49a_identifier(C)) {
  364. _name=rT67to_decl_name((T67*)rT49tmp_name());
  365. _state=2;
  366. }
  367.  else if (rT49skip1(C,'\51')) {
  368. _state=6;
  369. }
  370. else {
  371. _state=7;
  372. }
  373. /*FI*/goto l65;
  374.  l69: ;
  375. if (2 == iv1) goto l70;
  376. goto l71;
  377.  l70: ;
  378. /*IF*/if (rT49skip1(C,'\72')) {
  379. /*IF*/if (((int)_name_list)) {
  380. rT139add_last((T139*)_name_list,_name);
  381. _name=NULL;
  382. }
  383. /*FI*/_state=4;
  384. }
  385. else {
  386. C->_ok=rT49skip1(C,'\54');
  387. /*IF*/if (!(_name_list)) {
  388. _name_list=ma(139,0,1,_name);
  389. }
  390. else {
  391. rT139add_last((T139*)_name_list,_name);
  392. }
  393. /*FI*/_name=NULL;
  394. _state=3;
  395. }
  396. /*FI*/goto l65;
  397.  l71: ;
  398. if (3 == iv1) goto l72;
  399. goto l73;
  400.  l72: ;
  401. /*IF*/if (rT49a_identifier(C)) {
  402. _name=rT67to_decl_name((T67*)rT49tmp_name());
  403. _state=2;
  404. }
  405.  else if ((((C)->_cc)==('\54'))||(((C)->_cc)==('\73'))) {
  406. rT49wcp(C,(T0 *)ms256);
  407. C->_ok=(rT49skip1(C,'\54'))||(rT49skip1(C,'\73'));
  408. }
  409. else {
  410. _state=7;
  411. }
  412. /*FI*/goto l65;
  413.  l73: ;
  414. if (4 == iv1) goto l74;
  415. goto l75;
  416.  l74: ;
  417. /*IF*/if (rT49a_type(C)) {
  418. /*IF*/if (((int)_name_list)) {
  419. {T140 *n=((T140*)new(140));
  420. rT140make(n,_name_list,(C)->_last_type);
  421. _declaration=(T0 *)n;}_name_list=NULL;
  422. }
  423. else {
  424. {T92 *n=((T92*)new(92));
  425. rT92make(n,_name,(C)->_last_type);
  426. _declaration=(T0 *)n;}_name=NULL;
  427. }
  428. /*FI*//*IF*/if (!(_list)) {
  429. _list=ma(141,0,1,_declaration);
  430. }
  431. else {
  432. XrT141add_last(_list,_declaration);
  433. }
  434. /*FI*/_declaration=NULL;
  435. _state=5;
  436. }
  437. else {
  438. _state=7;
  439. }
  440. /*FI*/goto l65;
  441.  l75: ;
  442. /*IF*/if (rT49skip1(C,'\51')) {
  443. _state=6;
  444. }
  445.  else if (((C)->_cc)==('\54')) {
  446. rT49wcp(C,(T0 *)ms257);
  447. C->_ok=rT49skip1(C,'\54');
  448. _state=1;
  449. }
  450. else {
  451. C->_ok=rT49skip1(C,'\73');
  452. _state=1;
  453. }
  454. /*FI*/ l65: ;
  455. }
  456. }
  457. /*IF*/if ((_state)==(7)) {
  458. rT49fcp(C,(T0 *)ms258);
  459. }
  460.  else if ((((int)_sp))&&(!(_list))) {
  461. rT49warning(_sp,(T0 *)ms259);
  462. }
  463.  else if (((int)_sp)) {
  464. {T90 *n=((T90*)new(90));
  465. rT90make(n,_sp,_list);
  466. C->_arguments=(T0 *)n;}
  467. /*(IRF3*/(((T134*)oRBC49tmp_feature)->_arguments)=((C)->_arguments);
  468. /*)*/}
  469. /*FI*/}
  470. void rT49a_undefine_list(T49 *C){
  471. /*IF*/if (rT49a_feature_list(C)) {
  472. rT116set_undefine((T116*)(C)->_last_parent,(C)->_last_feature_list);
  473. }
  474. /*FI*/}
  475. int rT49a_prefix(T49 *C){
  476. int R=0;
  477. /*IF*/if (rT49a_keyword(C,(T0 *)ms79)) {
  478. R=1;
  479. /*IF*/if (((C)->_cc)==('\42')) {
  480. rT49next_char(C);
  481. }
  482. else {
  483. rT49wcp(C,(T0 *)ms81);
  484. }
  485. /*FI*//*IF*/if (rT49a_unary(C)) {
  486. }
  487.  else if (rT49a_free_operator(C)) {
  488. C->_last_prefix=rT67to_prefix_name((T67*)rT49tmp_operator());
  489. }
  490. else {
  491. rT49fcp(C,(T0 *)ms86);
  492. }
  493. /*FI*//*IF*/if (!(rT49skip1(C,'\42'))) {
  494. rT49wcp(C,(T0 *)ms87);
  495. }
  496. /*FI*/}
  497. /*FI*/return R;
  498. }
  499. void rT49a_formal_generic_list(T49 *C){
  500. int _state=0;
  501. T0* _list=NULL;
  502. T0 * _fga=NULL;
  503. T0 * _constraint=NULL;
  504. T0 * _name=NULL;
  505. T0 * _sp=NULL;
  506. C->_formal_generic_list=NULL;
  507. while (!((_state)>(4))) {
  508. {int iv1=_state;
  509. if (0 == iv1) goto l77;
  510. goto l78;
  511.  l77: ;
  512. /*IF*/if (rT49skip1(C,'\133')) {
  513. {T44 *n=((T44*)new(44));
  514. rT44make(n,(C)->_start_line,(C)->_start_column);
  515. _sp=(T0 *)n;}
  516. _state=1;
  517. }
  518. else {
  519. _state=5;
  520. }
  521. /*FI*/goto l76;
  522.  l78: ;
  523. if (1 == iv1) goto l79;
  524. goto l80;
  525.  l79: ;
  526. /*IF*/if (rT49a_base_class_name(C)) {
  527. _name=(C)->_last_class_name;
  528. _state=2;
  529. }
  530. else {
  531. _state=6;
  532. }
  533. /*FI*/goto l76;
  534.  l80: ;
  535. if (2 == iv1) goto l81;
  536. goto l82;
  537.  l81: ;
  538. /*IF*/if (rT49skip2(C,'\55','\76')) {
  539. _state=4;
  540. }
  541.  else if ((((C)->_cc)==('\54'))||(((C)->_cc)==('\135'))) {
  542. {T82 *n=((T82*)new(82));
  543. rT82make(n,_name,_constraint);
  544. _fga=(T0 *)n;}
  545. _name=NULL;
  546. _constraint=NULL;
  547. /*IF*/if (!(_list)) {
  548. _list=ma(84,0,1,_fga);
  549. }
  550. else {
  551. rT84add_last((T84*)_list,_fga);
  552. }
  553. /*FI*/_fga=NULL;
  554. /*IF*/if (rT49skip1(C,'\54')) {
  555. _state=1;
  556. }
  557. else {
  558. C->_ok=rT49skip1(C,'\135');
  559. _state=5;
  560. }
  561. /*FI*/}
  562. else {
  563. _state=6;
  564. }
  565. /*FI*/goto l76;
  566.  l82: ;
  567. if (3 == iv1) goto l83;
  568. goto l84;
  569.  l83: ;
  570. /*IF*/if ((((C)->_cc)==('\54'))||(((C)->_cc)==('\135'))) {
  571. {T82 *n=((T82*)new(82));
  572. rT82make(n,_name,_constraint);
  573. _fga=(T0 *)n;}
  574. _name=NULL;
  575. _constraint=NULL;
  576. /*IF*/if (!(_list)) {
  577. _list=ma(84,0,1,_fga);
  578. }
  579. else {
  580. rT84add_last((T84*)_list,_fga);
  581. }
  582. /*FI*/_fga=NULL;
  583. /*IF*/if (rT49skip1(C,'\54')) {
  584. _state=1;
  585. }
  586. else {
  587. C->_ok=rT49skip1(C,'\135');
  588. _state=5;
  589. }
  590. /*FI*/}
  591. else {
  592. _state=6;
  593. }
  594. /*FI*/goto l76;
  595.  l84: ;
  596. /*IF*/if (rT49a_class_type(C)) {
  597. _constraint=(C)->_last_class_type;
  598. _state=3;
  599. }
  600. else {
  601. rT49fcp(C,(T0 *)ms217);
  602. _state=6;
  603. }
  604. /*FI*/ l76: ;
  605. }
  606. }
  607. /*IF*/if ((_state)==(6)) {
  608. }
  609.  else if ((((int)_sp))&&(!(_list))) {
  610. rT49warning(_sp,(T0 *)ms218);
  611. }
  612.  else if (((int)_sp)) {
  613. {T83 *n=((T83*)new(83));
  614. rT83make(n,_sp,_list);
  615. C->_formal_generic_list=(T0 *)n;}
  616. /*(IRF3*/(((T48*)(C)->_last_base_class)->_formal_generic_list)=((C)->_formal_generic_list);
  617. /*)*/}
  618. /*FI*/}
  619. void rT49fatal_error(/*C*/T0* a1){
  620. rT43fatal_error((T43*)oRBC27eh,a1);
  621. }
  622. void rT49a_function_call(T49 *C){
  623. T0 * _e_current=NULL;
  624. T0 * _fn=NULL;
  625. _fn=rT67to_feature_name((T67*)rT49tmp_name());
  626. {T87 *n=((T87*)new(87));
  627. rT87make(n,XrT65start_position(_fn),0);
  628. _e_current=(T0 *)n;}
  629. rT49a_r10(C,0,_e_current,_fn,rT49a_actuals(C));
  630. }
  631. int rT49a_keyword(T49 *C,T0* a1){
  632. int R=0;
  633. int _i=0;
  634. C->_start_line=(C)->_line;
  635. C->_start_column=(C)->_column;
  636. while (!(((_i)==(((T7*)a1)->_count))||(!(rT3same_as((C)->_cc,rT7item((T7*)a1,(_i)+(1))))))) {
  637. _i=(_i)+(1);
  638. rT49next_char(C);
  639. }
  640. /*IF*/if ((_i)==(((T7*)a1)->_count)) {
  641. {int iv1=(C)->_cc;
  642. if ((9 <= iv1) && (iv1<= 10)) goto l86;
  643. if (32 == iv1) goto l86;
  644. if (45 == iv1) goto l86;
  645. goto l87;
  646.  l86: ;
  647. R=1;
  648. rT49skip_comments(C);
  649. goto l85;
  650.  l87: ;
  651. if ((48 <= iv1) && (iv1<= 57)) goto l88;
  652. if ((65 <= iv1) && (iv1<= 90)) goto l88;
  653. if (95 == iv1) goto l88;
  654. if ((97 <= iv1) && (iv1<= 122)) goto l88;
  655. goto l89;
  656.  l88: ;
  657. while (!((_i)==(0))) {
  658. rT49prev_char(C);
  659. _i=(_i)-(1);
  660. }
  661. goto l85;
  662.  l89: ;
  663. R=1;
  664.  l85: ;
  665. }
  666. }
  667. else {
  668. while (!((_i)==(0))) {
  669. rT49prev_char(C);
  670. _i=(_i)-(1);
  671. }
  672. }
  673. /*FI*/return R;
  674. }
  675. int rT49a_loop(T49 *C){
  676. int R=0;
  677. T0* _al=NULL;
  678. T0 * _hc=NULL;
  679. T0 * _lb=NULL;
  680. T0 * _ue=NULL;
  681. T0 * _vc=NULL;
  682. T0 * _ic=NULL;
  683. T0 * _i=NULL;
  684. T0 * _e_loop=NULL;
  685. T0 * _sp2=NULL;
  686. T0 * _sp=NULL;
  687. /*IF*/if (rT49a_keyword(C,(T0 *)ms370)) {
  688. R=1;
  689. {T44 *n=((T44*)new(44));
  690. rT44make(n,(C)->_start_line,(C)->_start_column);
  691. _sp=(T0 *)n;}
  692. _i=rT49a_compound1(C,(T0 *)ms371);
  693. /*IF*/if (rT49a_keyword(C,(T0 *)ms372)) {
  694. {T44 *n=((T44*)new(44));
  695. rT44make(n,(C)->_start_line,(C)->_start_column);
  696. _sp2=(T0 *)n;}
  697. _hc=rT49get_comments(C);
  698. _al=rT49a_assertion(C);
  699. /*IF*/if ((((int)_hc))||(((int)_al))) {
  700. {T234 *n=((T234*)new(234));
  701. rT234make(n,_sp2,_hc,_al);
  702. _ic=(T0 *)n;}
  703. }
  704. /*FI*/}
  705. /*FI*//*IF*/if (rT49a_keyword(C,(T0 *)ms373)) {
  706. /*IF*/if ((rT49a_tag_mark(C))&&(rT49a_expression(C))) {
  707. {T236 *n=((T236*)new(236));
  708. rT236make(n,(C)->_last_tag_mark,(C)->_last_expression,rT49get_comments(C));
  709. _vc=(T0 *)n;}}
  710.  else if (rT49a_expression(C)) {
  711. {T237 *n=((T237*)new(237));
  712. rT237make(n,(C)->_last_expression,rT49get_comments(C));
  713. _vc=(T0 *)n;}}
  714. else {
  715. rT49wcp(C,(T0 *)ms374);
  716. }
  717. /*FI*/}
  718. /*FI*//*IF*/if (rT49a_keyword(C,(T0 *)ms375)) {
  719. /*IF*/if (rT49a_expression(C)) {
  720. _ue=XrT66add_comment((C)->_last_expression,rT49get_comments(C));
  721. }
  722. else {
  723. rT49fcp(C,(T0 *)ms376);
  724. _ue=(C)->_last_expression;
  725. }
  726. /*FI*/}
  727. else {
  728. rT49fcp(C,(T0 *)ms377);
  729. _ue=(C)->_last_expression;
  730. }
  731. /*FI*//*IF*/if (((C)->_cc)==('\73')) {
  732. rT49wcp(C,(T0 *)ms236);
  733. C->_ok=rT49skip1(C,'\73');
  734. }
  735. /*FI*//*IF*/if (!(rT49a_keyword(C,(T0 *)ms378))) {
  736. rT49wcp(C,(T0 *)ms379);
  737. }
  738. /*FI*/_lb=rT49a_compound2(C,(T0 *)ms380,(T0 *)ms119);
  739. {T233 *n=((T233*)new(233));
  740. rT233make(n,_sp,_i,_ic,_vc,_ue,_lb);
  741. _e_loop=(T0 *)n;}
  742. C->_last_instruction=_e_loop;
  743. }
  744. /*FI*/return R;
  745. }
  746. int rT49a_inspect(T49 *C){
  747. int R=0;
  748. T0 * _ec=NULL;
  749. T0 * _i=NULL;
  750. T0 * _spec=NULL;
  751. T0 * _sp=NULL;
  752. /*IF*/if (rT49a_keyword(C,(T0 *)ms361)) {
  753. R=1;
  754. {T44 *n=((T44*)new(44));
  755. rT44make(n,(C)->_start_line,(C)->_start_column);
  756. _sp=(T0 *)n;}
  757. /*IF*/if (rT49a_expression(C)) {
  758. C->_last_expression=XrT66add_comment((C)->_last_expression,rT49get_comments(C));
  759. }
  760. else {
  761. rT49fcp(C,(T0 *)ms362);
  762. }
  763. /*FI*/{T223 *n=((T223*)new(223));
  764. rT223make(n,_sp,(C)->_last_expression);
  765. _i=(T0 *)n;}
  766. while (!(!(rT49a_when_part(C,_i)))) {
  767. }
  768. /*IF*/if (rT49a_keyword(C,(T0 *)ms105)) {
  769. {T44 *n=((T44*)new(44));
  770. rT44make(n,(C)->_start_line,(C)->_start_column);
  771. _spec=(T0 *)n;}
  772. _ec=rT49a_compound2(C,(T0 *)ms368,(T0 *)ms119);
  773. rT223set_else_compound((T223*)_i,_spec,_ec);
  774. }
  775.  else if (!(rT49a_keyword(C,(T0 *)ms119))) {
  776. rT49wcp(C,(T0 *)ms369);
  777. }
  778. /*FI*/C->_last_instruction=_i;
  779. }
  780. /*FI*/return R;
  781. }
  782. int rT49a_instruction(T49 *C){
  783. int R=0;
  784. R=(((((((rT49a_check(C))||(rT49a_debug(C)))||(rT49a_conditional(C)))||(rT49a_retry(C)))||(rT49a_inspect(C)))||(rT49a_loop(C)))||(rT49a_creation(C)))||(rT49a_assignment_or_call(C));
  785. return R;
  786. }
  787. int rT49a_result(T49 *C){
  788. int R=0;
  789. /*IF*/if (rT7same_as((T7*)(T0 *)ms291,((T67*)rT49tmp_name())->_to_string)) {
  790. /*IF*/if (!((C)->_function_type)) {
  791. rT49error(rT67start_position((T67*)rT49tmp_name()),(T0 *)ms292);
  792. }
  793. /*FI*/C->_last_expression=rT67to_e_result((T67*)rT49tmp_name());
  794. R=1;
  795. }
  796. /*FI*/return R;
  797. }
  798. void rT49a_new_export_list(T49 *C){
  799. int _state=0;
  800. T0 * _new_export_item=NULL;
  801. T0* _items=NULL;
  802. T0 * _clients=NULL;
  803. T0 * _sp=NULL;
  804. T0 * _export_list=NULL;
  805. /*IF*/if (rT49a_keyword(C,(T0 *)ms231)) {
  806. {T44 *n=((T44*)new(44));
  807. rT44make(n,(C)->_start_line,(C)->_start_column);
  808. _sp=(T0 *)n;}
  809. while (!((_state)>(3))) {
  810. {int iv1=_state;
  811. if (0 == iv1) goto l91;
  812. goto l92;
  813.  l91: ;
  814. /*IF*/if (((C)->_cc)==('\173')) {
  815. _clients=rT49a_clients(C);
  816. _state=1;
  817. }
  818.  else if (((C)->_cc)==('\73')) {
  819. rT49wcp(C,(T0 *)ms236);
  820. C->_ok=rT49skip1(C,'\73');
  821. }
  822. else {
  823. /*IF*/if (((int)_items)) {
  824. {T120 *n=((T120*)new(120));
  825. rT120make(n,_sp,_items);
  826. _export_list=(T0 *)n;}
  827. /*(IRF3*/(((T116*)(C)->_last_parent)->_export_list)=(_export_list);
  828. /*)*/}
  829. /*FI*/_state=4;
  830. }
  831. /*FI*/goto l90;
  832.  l92: ;
  833. if (1 == iv1) goto l93;
  834. goto l94;
  835.  l93: ;
  836. /*IF*/if (rT49a_keyword(C,(T0 *)ms237)) {
  837. {T122 *n=((T122*)new(122));
  838. rT122make_all(n,_clients);
  839. _new_export_item=(T0 *)n;}
  840. /*IF*/if (!(_items)) {
  841. _items=ma(125,0,1,_new_export_item);
  842. }
  843. else {
  844. rT125add_last((T125*)_items,_new_export_item);
  845. }
  846. /*FI*/_state=2;
  847. }
  848. else {
  849. /*IF*/if (rT49a_feature_list(C)) {
  850. {T122 *n=((T122*)new(122));
  851. rT122make(n,_clients,(C)->_last_feature_list);
  852. _new_export_item=(T0 *)n;}
  853. /*IF*/if (!(_items)) {
  854. _items=ma(125,0,1,_new_export_item);
  855. }
  856. else {
  857. rT125add_last((T125*)_items,_new_export_item);
  858. }
  859. /*FI*/_state=2;
  860. }
  861. else {
  862. _state=3;
  863. }
  864. /*FI*/}
  865. /*FI*/goto l90;
  866.  l94: ;
  867. if (2 == iv1) goto l95;
  868. goto l96;
  869.  l95: ;
  870. /*IF*/if (rT49skip1(C,'\73')) {
  871. _state=0;
  872. }
  873.  else if (((C)->_cc)==('\173')) {
  874. rT49wcp(C,(T0 *)ms240);
  875. _state=0;
  876. }
  877. else {
  878. /*IF*/if (((int)_items)) {
  879. {T120 *n=((T120*)new(120));
  880. rT120make(n,_sp,_items);
  881. _export_list=(T0 *)n;}
  882. /*(IRF3*/(((T116*)(C)->_last_parent)->_export_list)=(_export_list);
  883. /*)*/}
  884. /*FI*/_state=4;
  885. }
  886. /*FI*/goto l90;
  887.  l96: ;
  888. rT49fcp(C,(T0 *)ms234);
  889. _state=4;
  890.  l90: ;
  891. }
  892. }
  893. }
  894. /*FI*/}
  895. int rT49a_current(T49 *C){
  896. int R=0;
  897. /*IF*/if (rT7same_as((T7*)(T0 *)ms203,((T67*)rT49tmp_name())->_to_string)) {
  898. C->_last_expression=rT67to_e_current((T67*)rT49tmp_name());
  899. R=1;
  900. }
  901. /*FI*/return R;
  902. }
  903. int rT49a_retry(T49 *C){
  904. int R=0;
  905. /*IF*/if (rT49a_keyword(C,(T0 *)ms359)) {
  906. /*IF*/if (!((C)->_in_rescue)) {
  907. rT49error(rT49pos((C)->_start_line,(C)->_start_column),(T0 *)ms360);
  908. }
  909. /*FI*/{T222 *n=((T222*)new(222));
  910. /*(IRF3*/((n)->_start_position)=(rT49pos((C)->_start_line,(C)->_start_column));
  911. /*)*/C->_last_instruction=(T0 *)n;}R=1;
  912. }
  913. /*FI*/return R;
  914. }
  915. int rT49a_integer_constant(T49 *C){
  916. int R=0;
  917. /*IF*/if (rT49skip1(C,'\53')) {
  918. /*IF*/if (!(rT49a_integer(C))) {
  919. rT49fcp(C,(T0 *)ms173);
  920. }
  921. else {
  922. R=1;
  923. }
  924. /*FI*/}
  925.  else if (rT49skip1(C,'\55')) {
  926. /*IF*/if (!(rT49a_integer(C))) {
  927. rT49fcp(C,(T0 *)ms173);
  928. }
  929. else {
  930. C->_last_integer_constant=rT78_px45((T78*)(C)->_last_integer_constant);
  931. R=1;
  932. }
  933. /*FI*/}
  934. else {
  935. R=rT49a_integer(C);
  936. }
  937. /*FI*/return R;
  938. }
  939. int rT49a_integer(T49 *C){
  940. int R=0;
  941. int _value=0;
  942. int _state=0;
  943. /*IF*/if (rT3is_digit((C)->_cc)) {
  944. R=1;
  945. C->_start_line=(C)->_line;
  946. C->_start_column=(C)->_column;
  947. _value=rT3value((C)->_cc);
  948. while (!((_state)>(3))) {
  949. rT49next_char(C);
  950. {int iv1=_state;
  951. if (0 == iv1) goto l98;
  952. goto l99;
  953.  l98: ;
  954. {int iv2=(C)->_cc;
  955. if ((48 <= iv2) && (iv2<= 57)) goto l101;
  956. goto l102;
  957.  l101: ;
  958. _value=((_value)*(10))+(rT3value((C)->_cc));
  959. goto l100;
  960.  l102: ;
  961. if (95 == iv2) goto l103;
  962. goto l104;
  963.  l103: ;
  964. _state=1;
  965. goto l100;
  966.  l104: ;
  967. _state=4;
  968.  l100: ;
  969. }
  970. goto l97;
  971.  l99: ;
  972. if (1 == iv1) goto l105;
  973. goto l106;
  974.  l105: ;
  975. {int iv2=(C)->_cc;
  976. if ((48 <= iv2) && (iv2<= 57)) goto l108;
  977. goto l109;
  978.  l108: ;
  979. _value=((_value)*(10))+(rT3value((C)->_cc));
  980. _state=2;
  981. goto l107;
  982.  l109: ;
  983. rT49fcp(C,(T0 *)ms169);
  984.  l107: ;
  985. }
  986. goto l97;
  987.  l106: ;
  988. if (2 == iv1) goto l110;
  989. goto l111;
  990.  l110: ;
  991. {int iv2=(C)->_cc;
  992. if ((48 <= iv2) && (iv2<= 57)) goto l113;
  993. goto l114;
  994.  l113: ;
  995. _value=((_value)*(10))+(rT3value((C)->_cc));
  996. _state=3;
  997. goto l112;
  998.  l114: ;
  999. rT49fcp(C,(T0 *)ms169);
  1000.  l112: ;
  1001. }
  1002. goto l97;
  1003.  l111: ;
  1004. {int iv2=(C)->_cc;
  1005. if ((48 <= iv2) && (iv2<= 57)) goto l116;
  1006. goto l117;
  1007.  l116: ;
  1008. _value=((_value)*(10))+(rT3value((C)->_cc));
  1009. _state=0;
  1010. goto l115;
  1011.  l117: ;
  1012. rT49fcp(C,(T0 *)ms169);
  1013.  l115: ;
  1014. }
  1015.  l97: ;
  1016. }
  1017. rT49skip_comments(C);
  1018. {T78 *n=((T78*)new(78));
  1019. rT78make(n,_value,rT49pos((C)->_start_line,(C)->_start_column));
  1020. C->_last_integer_constant=(T0 *)n;}
  1021. }
  1022. }
  1023. /*FI*/return R;
  1024. }
  1025. void rT49err_exp(/*C*/T0 * a1,T0* a2){
  1026. T0* _msg=NULL;
  1027. {T7 *n=((T7*)new(7));
  1028. rT7make(n,0);
  1029. _msg=(T0 *)n;}
  1030. rT7append((T7*)_msg,(T0 *)ms281);
  1031. rT7append((T7*)_msg,a2);
  1032. rT7append((T7*)_msg,(T0 *)ms282);
  1033. /*UT*/(T43*)oRBC27eh;
  1034. rT43add_position(a1);
  1035. rT49fatal_error(_msg);
  1036. }
  1037. int rT49a_expression(T49 *C){
  1038. int R=0;
  1039. T0* _list=NULL;
  1040. T0 * _sp=NULL;
  1041. /*IF*/if (rT49skip2(C,'\74','\74')) {
  1042. R=1;
  1043. {T44 *n=((T44*)new(44));
  1044. rT44make(n,(C)->_start_line,(C)->_start_column);
  1045. _sp=(T0 *)n;}
  1046. while (!(!(rT49a_expression(C)))) {
  1047. /*IF*/if (!(_list)) {
  1048. _list=ma(79,0,1,(C)->_last_expression);
  1049. }
  1050. else {
  1051. XrT79add_last(_list,(C)->_last_expression);
  1052. }
  1053. /*FI*/C->_ok=rT49skip1(C,'\54');
  1054. }
  1055. /*IF*/if (!(rT49skip2(C,'\76','\76'))) {
  1056. rT49fcp(C,(T0 *)ms280);
  1057. }
  1058. /*FI*/{T158 *n=((T158*)new(158));
  1059. rT158make(n,_sp,_list);
  1060. C->_last_expression=(T0 *)n;}}
  1061. else {
  1062. R=rT49a_e0(C);
  1063. }
  1064. /*FI*/return R;
  1065. }
  1066. int rT49a_void(T49 *C){
  1067. int R=0;
  1068. /*IF*/if (rT7same_as((T7*)(T0 *)ms293,((T67*)rT49tmp_name())->_to_string)) {
  1069. C->_last_expression=rT67to_e_void((T67*)rT49tmp_name());
  1070. R=1;
  1071. }
  1072. /*FI*/return R;
  1073. }
  1074. void rT49a_procedure_call(T49 *C){
  1075. T0 * _e_current=NULL;
  1076. T0 * _fn=NULL;
  1077. _fn=rT67to_feature_name((T67*)rT49tmp_name());
  1078. {T87 *n=((T87*)new(87));
  1079. rT87make(n,XrT65start_position(_fn),0);
  1080. _e_current=(T0 *)n;}
  1081. rT49a_r10(C,1,_e_current,_fn,rT49a_actuals(C));
  1082. }
  1083. T0* rT49a_external_name(T49 *C){
  1084. T0* R=NULL;
  1085. /*IF*/if (rT49a_keyword(C,(T0 *)ms339)) {
  1086. /*IF*/if (!(rT49a_manifest_string(C))) {
  1087. rT49fcp(C,(T0 *)ms340);
  1088. }
  1089. else {
  1090. R=((T74*)(C)->_last_manifest_string)->_to_string;
  1091. }
  1092. /*FI*/}
  1093. /*FI*/return R;
  1094. }
  1095. T0 * rT49a_external(T49 *C){
  1096. T0 * R=NULL;
  1097. T0 * _external_lgg=NULL;
  1098. /*IF*/if (!(rT49a_manifest_string(C))) {
  1099. rT49fcp(C,(T0 *)ms333);
  1100. _external_lgg=((T0 *)((T205*)new(205)));
  1101. }
  1102.  else if (rT7is_equal(ms334,((T74*)(C)->_last_manifest_string)->_to_string)) {
  1103. _external_lgg=((T0 *)((T205*)new(205)));
  1104. }
  1105.  else if (rT7is_equal(ms335,((T74*)(C)->_last_manifest_string)->_to_string)) {
  1106. _external_lgg=((T0 *)((T206*)new(206)));
  1107. }
  1108.  else if (rT7is_equal(ms336,((T74*)(C)->_last_manifest_string)->_to_string)) {
  1109. _external_lgg=((T0 *)((T207*)new(207)));
  1110. }
  1111. else {
  1112. /*UT*/(T43*)oRBC27eh;
  1113. rT43append((T0 *)ms337);
  1114. /*UT*/(T43*)oRBC27eh;
  1115. rT43append(((T74*)(C)->_last_manifest_string)->_to_string);
  1116. rT49fcp(C,(T0 *)ms338);
  1117. _external_lgg=((T0 *)((T205*)new(205)));
  1118. }
  1119. /*FI*/R=rT134to_external_routine((T134*)oRBC49tmp_feature,_external_lgg,rT49a_external_name(C));
  1120. return R;
  1121. }
  1122. T0* rT49clone(T49 *C,T0* a1){
  1123. T0* R=NULL;
  1124. /*IF*/if (((int)a1)) {
  1125. R=(T0 *)new(a1->id);
  1126. AF_1
  1127. XrT28copy(R,a1);
  1128. AF_0
  1129. }
  1130. /*FI*/return R;
  1131. }
  1132. T0*oRBC49forbidden_class;
  1133. void rT49a_r10(T49 *C,int a1,T0 * a2,T0 * a3,T0 * a4){
  1134. /*IF*/if (rT49skip1unless2(C,'\56','\56')) {
  1135. rT49a_after_a_dot(C,a1,rT49to_call(a2,a3,a4));
  1136. }
  1137. else {
  1138. /*IF*/if (a1) {
  1139. C->_last_instruction=rT49to_proc_call(C,a2,a3,a4);
  1140. C->_last_expression=NULL;
  1141. }
  1142. else {
  1143. C->_last_expression=rT49to_call(a2,a3,a4);
  1144. C->_last_instruction=NULL;
  1145. }
  1146. /*FI*/}
  1147. /*FI*/}
  1148. T0 * rT49analyse_class(T49 *C,T0* a1){
  1149. T0 * R=NULL;
  1150. int _old_nbw=0;
  1151. int _old_nbe=0;
  1152. /*IF*/if ((/*(IRF4*/((T43*)oRBC27eh)->_nb_errors/*)*/)>(0)) {
  1153. /*UT*/(T43*)oRBC27eh;
  1154. rT43append((T0 *)ms74);
  1155. rT43print_as_fatal_error((T43*)oRBC27eh);
  1156. }
  1157. /*FI*//*IF*/if (/*(IRF4*/(!(/*(IRF4*/(!(/*(IRF4*/((T49*)oRBC27eiffel_parser)->_is_running/*)*/))&&(((T50*)oRBC27small_eiffel)->_is_doing_eval_flag)/*)*/))&&(((T50*)oRBC27small_eiffel)->_is_compiling_flag)/*)*/) {
  1158. rT38put_integer((T38*)oRBC1std_output,(/*(IRF4*/(/*UT*/(T50*)oRBC27small_eiffel,
  1159. ((T52*)oRBC50base_class_dictionary)->_count/*)*/))+(1));
  1160. rT38put_character((T38*)oRBC1std_output,'\11');
  1161. rT38put_string((T38*)oRBC1std_output,a1);
  1162. rT38put_character((T38*)oRBC1std_output,'\12');
  1163. }
  1164. /*FI*/_old_nbe=/*(IRF4*/((T43*)oRBC27eh)->_nb_errors/*)*/;
  1165. _old_nbw=/*(IRF4*/((T43*)oRBC27eh)->_nb_warnings/*)*/;
  1166. C->_is_running=1;
  1167. C->_function_type=NULL;
  1168. C->_in_ensure=0;
  1169. C->_last_comments=NULL;
  1170. rT58read((T58*)oRBC49text,a1);
  1171. C->_line=1;
  1172. C->_column=1;
  1173. C->_current_line=(/*UT*/(T58*)oRBC49text,
  1174. rT58item((C)->_line));
  1175. /*IF*/if ((((T7*)(C)->_current_line)->_count)==(0)) {
  1176. C->_cc='\12';
  1177. }
  1178. else {
  1179. C->_cc=rT7first((T7*)(C)->_current_line);
  1180. }
  1181. /*FI*/{T48 *n=((T48*)new(48));
  1182. rT48make(n,a1);
  1183. C->_last_base_class=(T0 *)n;}
  1184. rT49skip_comments(C);
  1185. rT49a_class_declaration(C);
  1186. C->_is_running=0;
  1187. R=(C)->_last_base_class;
  1188. /*IF*/if (((/*(IRF4*/((T43*)oRBC27eh)->_nb_errors/*)*/)-(_old_nbe))>(0)) {
  1189. rT33put_string((T33*)oRBC1std_error,(T0 *)ms409);
  1190. rT33put_integer((T33*)oRBC1std_error,/*(IRF4*/((T43*)oRBC27eh)->_nb_errors/*)*/);
  1191. rT33put_string((T33*)oRBC1std_error,(T0 *)ms410);
  1192. rT33put_string((T33*)oRBC1std_error,(T0 *)ms411);
  1193. rT33put_string((T33*)oRBC1std_error,a1);
  1194. rT33put_string((T33*)oRBC1std_error,(T0 *)ms412);
  1195. R=NULL;
  1196. }
  1197.  else if (((/*(IRF4*/((T43*)oRBC27eh)->_nb_warnings/*)*/)-(_old_nbw))>(0)) {
  1198. rT33put_string((T33*)oRBC1std_error,(T0 *)ms413);
  1199. rT33put_integer((T33*)oRBC1std_error,/*(IRF4*/((T43*)oRBC27eh)->_nb_warnings/*)*/);
  1200. rT33put_string((T33*)oRBC1std_error,(T0 *)ms414);
  1201. }
  1202. /*FI*//*IF*/if (((int)R)) {
  1203. rT50add_class((T50*)oRBC27small_eiffel,R);
  1204. rT48get_started((T48*)R);
  1205. }
  1206. /*FI*/return R;
  1207. }
  1208. T0 * rT49a_routine_body(T49 *C){
  1209. T0 * R=NULL;
  1210. /*IF*/if (rT49a_keyword(C,(T0 *)ms331)) {
  1211. rT48set_is_deferred((T48*)(C)->_last_base_class);
  1212. R=rT134to_deferred_routine((T134*)oRBC49tmp_feature);
  1213. }
  1214.  else if (rT49a_keyword(C,(T0 *)ms332)) {
  1215. R=rT49a_external(C);
  1216. }
  1217.  else if (rT49a_keyword(C,(T0 *)ms341)) {
  1218. /*(IRF3*/(((T134*)oRBC49tmp_feature)->_routine_body)=(rT49a_compound1(C,(T0 *)ms394));
  1219. /*)*/R=rT134to_procedure_or_function((T134*)oRBC49tmp_feature);
  1220. }
  1221.  else if (rT49a_keyword(C,(T0 *)ms395)) {
  1222. /*(IRF3*/(((T134*)oRBC49tmp_feature)->_routine_body)=(rT49a_compound1(C,(T0 *)ms396));
  1223. /*)*/R=rT134to_once_routine((T134*)oRBC49tmp_feature);
  1224. }
  1225. else {
  1226. rT49fcp(C,(T0 *)ms397);
  1227. }
  1228. /*FI*/return R;
  1229. }
  1230. T0 * rT49a_routine(T49 *C){
  1231. T0 * R=NULL;
  1232. T0 * _ea=NULL;
  1233. T0* _al=NULL;
  1234. T0 * _hc=NULL;
  1235. T0 * _sp=NULL;
  1236. /*IF*/if (rT49a_keyword(C,(T0 *)ms277)) {
  1237. /*IF*/if (rT49a_manifest_string(C)) {
  1238. /*(IRF3*/(((T134*)oRBC49tmp_feature)->_obsolete_mark)=((C)->_last_manifest_string);
  1239. /*)*/}
  1240. else {
  1241. rT49fcp(C,(T0 *)ms278);
  1242. }
  1243. /*FI*/}
  1244. /*FI*//*(IRF3*/(((T134*)oRBC49tmp_feature)->_header_comment)=(rT49get_comments(C));
  1245. /*)*//*IF*/if (rT49a_keyword(C,(T0 *)ms279)) {
  1246. {T44 *n=((T44*)new(44));
  1247. rT44make(n,(C)->_start_line,(C)->_start_column);
  1248. _sp=(T0 *)n;}
  1249. /*IF*/if (rT49a_keyword(C,(T0 *)ms105)) {
  1250. _hc=rT49get_comments(C);
  1251. rT134set_require_else((T134*)oRBC49tmp_feature,_sp,_hc,rT49a_assertion(C));
  1252. }
  1253. else {
  1254. _hc=rT49get_comments(C);
  1255. rT134set_require((T134*)oRBC49tmp_feature,_sp,_hc,rT49a_assertion(C));
  1256. }
  1257. /*FI*/}
  1258. /*FI*//*IF*/if (rT49a_keyword(C,(T0 *)ms325)) {
  1259. rT49a_local_var_list(C,rT49pos((C)->_start_line,(C)->_start_column));
  1260. }
  1261. /*FI*/R=rT49a_routine_body(C);
  1262. /*IF*/if (rT49a_keyword(C,(T0 *)ms398)) {
  1263. {T44 *n=((T44*)new(44));
  1264. rT44make(n,(C)->_start_line,(C)->_start_column);
  1265. _sp=(T0 *)n;}
  1266. C->_in_ensure=1;
  1267. /*IF*/if (rT49a_keyword(C,(T0 *)ms102)) {
  1268. _hc=rT49get_comments(C);
  1269. _al=rT49a_assertion(C);
  1270. /*IF*/if ((((int)_hc))||(((int)_al))) {
  1271. {T155 *n=((T155*)new(155));
  1272. rT155make(n,_sp,_hc,_al);
  1273. _ea=(T0 *)n;}
  1274. /*(IRF3*/(((T155*)_ea)->_is_ensure_then)=(1);
  1275. /*)*/}
  1276. /*FI*/XrT154set_ensure_assertion(R,_ea);
  1277. }
  1278. else {
  1279. _hc=rT49get_comments(C);
  1280. _al=rT49a_assertion(C);
  1281. /*IF*/if ((((int)_hc))||(((int)_al))) {
  1282. {T155 *n=((T155*)new(155));
  1283. rT155make(n,_sp,_hc,_al);
  1284. _ea=(T0 *)n;}
  1285. }
  1286. /*FI*/XrT154set_ensure_assertion(R,_ea);
  1287. }
  1288. /*FI*/C->_in_ensure=0;
  1289. }
  1290. /*FI*//*IF*/if (rT49a_keyword(C,(T0 *)ms399)) {
  1291. C->_in_rescue=1;
  1292. XrT154set_rescue_compound(R,rT49a_compound2(C,(T0 *)ms401,(T0 *)ms119));
  1293. C->_in_rescue=0;
  1294. }
  1295. else {
  1296. /*IF*/if (!(rT49a_keyword(C,(T0 *)ms119))) {
  1297. rT49wcp(C,(T0 *)ms402);
  1298. }
  1299. /*FI*/}
  1300. /*FI*/C->_local_vars=NULL;
  1301. return R;
  1302. }
  1303. T0*oRBC49tmp_feature;
  1304. void rT49skip_comments(T49 *C){
  1305. int _state=0;
  1306. T0 * _sp=NULL;
  1307. while (!((_state)==(2))) {
  1308. {int iv1=_state;
  1309. if (0 == iv1) goto l119;
  1310. goto l120;
  1311.  l119: ;
  1312. {int iv2=(C)->_cc;
  1313. if ((9 <= iv2) && (iv2<= 10)) goto l122;
  1314. if (32 == iv2) goto l122;
  1315. goto l123;
  1316.  l122: ;
  1317. rT49next_char(C);
  1318. goto l121;
  1319.  l123: ;
  1320. if (45 == iv2) goto l124;
  1321. goto l125;
  1322.  l124: ;
  1323. rT49next_char(C);
  1324. _state=1;
  1325. goto l121;
  1326.  l125: ;
  1327. _state=2;
  1328.  l121: ;
  1329. }
  1330. goto l118;
  1331.  l120: ;
  1332. if (1 == iv1) goto l126;
  1333. goto l127;
  1334.  l126: ;
  1335. {int iv2=(C)->_cc;
  1336. if (45 == iv2) goto l129;
  1337. goto l130;
  1338.  l129: ;
  1339. /*IF*/if (!((C)->_last_comments)) {
  1340. {T44 *n=((T44*)new(44));
  1341. rT44make(n,(C)->_line,((C)->_column)-(1));
  1342. _sp=(T0 *)n;}
  1343. }
  1344. /*FI*/rT49next_char(C);
  1345. /*(IRF3*/(((T7*)oRBC49lcs)->_count)=(0);
  1346. /*)*/while (!(((C)->_cc)==('\12'))) {
  1347. rT7extend((T7*)oRBC49lcs,(C)->_cc);
  1348. rT49next_char(C);
  1349. }
  1350. /*IF*/if (!((C)->_last_comments)) {
  1351. {T57 *n=((T57*)new(57));
  1352. rT57make(n,_sp,ma(42,0,1,rT49clone(C,oRBC49lcs)));
  1353. C->_last_comments=(T0 *)n;}
  1354. }
  1355. else {
  1356. rT57add_last((T57*)(C)->_last_comments,rT49clone(C,oRBC49lcs));
  1357. }
  1358. /*FI*/_state=0;
  1359. goto l128;
  1360.  l130: ;
  1361. rT49prev_char(C);
  1362. _state=2;
  1363.  l128: ;
  1364. }
  1365. goto l118;
  1366.  l127: ;
  1367.  l118: ;
  1368. }
  1369. }
  1370. }
  1371. int rT49a_strip(T49 *C){
  1372. int R=0;
  1373. T0 * _sp=NULL;
  1374. /*IF*/if (rT49a_keyword(C,(T0 *)ms288)) {
  1375. {T44 *n=((T44*)new(44));
  1376. rT44make(n,(C)->_start_line,(C)->_start_column);
  1377. _sp=(T0 *)n;}
  1378. /*IF*/if (rT49skip1(C,'\50')) {
  1379. C->_ok=rT49a_feature_list(C);
  1380. {T167 *n=((T167*)new(167));
  1381. rT167make(n,_sp,(C)->_last_feature_list);
  1382. C->_last_expression=(T0 *)n;}/*IF*/if (!(rT49skip1(C,'\51'))) {
  1383. rT49fcp(C,(T0 *)ms289);
  1384. }
  1385. /*FI*/R=1;
  1386. }
  1387. else {
  1388. rT49fcp(C,(T0 *)ms290);
  1389. }
  1390. /*FI*/}
  1391. /*FI*/return R;
  1392. }
  1393. void rT49prev_char(T49 *C){
  1394. /*IF*/if (((C)->_column)>(1)) {
  1395. C->_column=((C)->_column)-(1);
  1396. C->_cc=rT7item((T7*)(C)->_current_line,(C)->_column);
  1397. }
  1398. else {
  1399. /*IF*/if (((C)->_line)>(1)) {
  1400. C->_line=((C)->_line)-(1);
  1401. C->_current_line=(/*UT*/(T58*)oRBC49text,
  1402. rT58item((C)->_line));
  1403. C->_column=(((T7*)(C)->_current_line)->_count)+(1);
  1404. C->_cc='\12';
  1405. }
  1406. else {
  1407. C->_column=0;
  1408. C->_cc='\0';
  1409. }
  1410. /*FI*/}
  1411. /*FI*/}
  1412. int rT49a_type(T49 *C){
  1413. int R=0;
  1414. T0 * _argument_name=NULL;
  1415. T0 * _sp=NULL;
  1416. R=1;
  1417. /*IF*/if (rT49a_keyword(C,(T0 *)ms202)) {
  1418. {T44 *n=((T44*)new(44));
  1419. rT44make(n,(C)->_start_line,(C)->_start_column);
  1420. _sp=(T0 *)n;}
  1421. /*IF*/if (rT49a_identifier(C)) {
  1422. /*IF*/if (rT49a_current(C)) {
  1423. {T88 *n=((T88*)new(88));
  1424. rT88make(n,_sp,(C)->_last_expression);
  1425. C->_last_type=(T0 *)n;}}
  1426.  else if (rT49a_argument(C)) {
  1427. _argument_name=(C)->_last_expression;
  1428. if ((int)_argument_name) switch (((T0 *)_argument_name)->id) {
  1429. case 86: 
  1430. break;
  1431. default:
  1432. _argument_name = NULL;
  1433. };{T96 *n=((T96*)new(96));
  1434. rT96make(n,_sp,_argument_name);
  1435. C->_last_type=(T0 *)n;}}
  1436. else {
  1437. {T97 *n=((T97*)new(97));
  1438. rT97make(n,_sp,rT67to_feature_name((T67*)rT49tmp_name()));
  1439. C->_last_type=(T0 *)n;}}
  1440. /*FI*/}
  1441. else {
  1442. rT49fcp(C,(T0 *)ms206);
  1443. }
  1444. /*FI*/}
  1445.  else if (rT49a_keyword(C,(T0 *)ms121)) {
  1446. {T44 *n=((T44*)new(44));
  1447. rT44make(n,(C)->_start_line,(C)->_start_column);
  1448. _sp=(T0 *)n;}
  1449. /*IF*/if (rT49a_class_type(C)) {
  1450. {T98 *n=((T98*)new(98));
  1451. rT98make(n,_sp,(C)->_last_class_type);
  1452. C->_last_type=(T0 *)n;}}
  1453. else {
  1454. rT49fcp(C,(T0 *)ms208);
  1455. }
  1456. /*FI*/}
  1457.  else if (rT49a_keyword(C,(T0 *)ms198)) {
  1458. {T44 *n=((T44*)new(44));
  1459. rT44make(n,(C)->_start_line,(C)->_start_column);
  1460. _sp=(T0 *)n;}
  1461. /*IF*/if (rT49a_integer(C)) {
  1462. {T99 *n=((T99*)new(99));
  1463. rT99make(n,_sp,(C)->_last_integer_constant);
  1464. C->_last_type=(T0 *)n;}}
  1465.  else if (rT49a_identifier(C)) {
  1466. {T101 *n=((T101*)new(101));
  1467. rT101make(n,_sp,rT67to_feature_name((T67*)rT49tmp_name()));
  1468. C->_last_type=(T0 *)n;}}
  1469. else {
  1470. rT49fcp(C,(T0 *)ms209);
  1471. }
  1472. /*FI*/}
  1473.  else if (rT49a_type_formal_generic(C)) {
  1474. C->_last_type=(C)->_last_type_formal_generic;
  1475. }
  1476.  else if (rT49a_class_type(C)) {
  1477. C->_last_type=(C)->_last_class_type;
  1478. }
  1479. else {
  1480. R=0;
  1481. }
  1482. /*FI*/return R;
  1483. }
  1484. int rT49a_type_formal_generic(T49 *C){
  1485. int R=0;
  1486. int _rank=0;
  1487. T0 * _cn=NULL;
  1488. T0 * _fga=NULL;
  1489. /*IF*/if (((int)(C)->_formal_generic_list)) {
  1490. _rank=1;
  1491. while (!((R)||((_rank)>(rT83count((T83*)(C)->_formal_generic_list))))) {
  1492. _fga=rT83item((T83*)(C)->_formal_generic_list,_rank);
  1493. /*IF*/if (rT49a_keyword(C,((T46*)((T82*)_fga)->_name)->_to_string)) {
  1494. {T46 *n=((T46*)new(46));
  1495. rT46make(n,((T46*)((T82*)_fga)->_name)->_to_string,rT49pos((C)->_start_line,(C)->_start_column));
  1496. _cn=(T0 *)n;}
  1497. {T102 *n=((T102*)new(102));
  1498. rT102make(n,_cn,_rank);
  1499. C->_last_type_formal_generic=(T0 *)n;}
  1500. R=1;
  1501. }
  1502. /*FI*/_rank=(_rank)+(1);
  1503. }
  1504. }
  1505. /*FI*/return R;
  1506. }
  1507. void rT49next_char(T49 *C){
  1508. /*IF*/if (((C)->_column)<(((T7*)(C)->_current_line)->_count)) {
  1509. C->_column=((C)->_column)+(1);
  1510. C->_cc=rT7item((T7*)(C)->_current_line,(C)->_column);
  1511. }
  1512.  else if (((C)->_column)==(((T7*)(C)->_current_line)->_count)) {
  1513. C->_column=((C)->_column)+(1);
  1514. C->_cc='\12';
  1515. }
  1516.  else if (((C)->_line)==(((T58*)oRBC49text)->_count)) {
  1517. C->_cc='\1';
  1518. }
  1519. else {
  1520. C->_column=1;
  1521. C->_line=((C)->_line)+(1);
  1522. C->_current_line=(/*UT*/(T58*)oRBC49text,
  1523. rT58item((C)->_line));
  1524. /*IF*/if ((((T7*)(C)->_current_line)->_count)==(0)) {
  1525. C->_cc='\12';
  1526. }
  1527. else {
  1528. C->_cc=rT7first((T7*)(C)->_current_line);
  1529. }
  1530. /*FI*/}
  1531. /*FI*/}
  1532. int ofBC49tmp_name=0;
  1533. T0*oRBC49tmp_name;
  1534. T0 * rT49tmp_name(/*C*/void){
  1535. T0 * R=NULL;
  1536. if (ofBC49tmp_name==0){
  1537. ofBC49tmp_name=1;
  1538. {T67 *n=((T67*)new(67));
  1539. rT67make(n,0,0);
  1540. R=(T0 *)n;}
  1541. oRBC49tmp_name=R;}
  1542. return oRBC49tmp_name;}
  1543. int ofBC49tmp_operator=0;
  1544. T0*oRBC49tmp_operator;
  1545. T0 * rT49tmp_operator(/*C*/void){
  1546. T0 * R=NULL;
  1547. if (ofBC49tmp_operator==0){
  1548. ofBC49tmp_operator=1;
  1549. {T67 *n=((T67*)new(67));
  1550. rT67make(n,0,0);
  1551. R=(T0 *)n;}
  1552. oRBC49tmp_operator=R;}
  1553. return oRBC49tmp_operator;}
  1554. T0 * rT49current_position(T49 *C){
  1555. T0 * R=NULL;
  1556. {T44 *n=((T44*)new(44));
  1557. rT44make(n,(C)->_line,(C)->_column);
  1558. R=(T0 *)n;}
  1559. return R;
  1560. }
  1561. void rT49warning(/*C*/T0 * a1,T0* a2){
  1562. /*UT*/(T43*)oRBC27eh;
  1563. rT43add_position(a1);
  1564. rT43warning((T43*)oRBC27eh,a2);
  1565. }
  1566. T0 * rT49current_class_name(T49 *C){
  1567. T0 * R=NULL;
  1568. R=((T48*)(C)->_last_base_class)->_base_class_name;
  1569. return R;
  1570. }
  1571. T0 * rT49to_proc_call(T49 *C,T0 * a1,T0 * a2,T0 * a3){
  1572. T0 * R=NULL;
  1573. /*IF*/if (!(a2)) {
  1574. rT49fcp(C,(T0 *)ms298);
  1575. }
  1576.  else if (!(a3)) {
  1577. {T176 *n=((T176*)new(176));
  1578. rT176make(n,a1,a2);
  1579. R=(T0 *)n;}}
  1580.  else if ((rT168count((T168*)a3))==(1)) {
  1581. {T177 *n=((T177*)new(177));
  1582. rT177make(n,a1,a2,a3);
  1583. R=(T0 *)n;}}
  1584. else {
  1585. {T178 *n=((T178*)new(178));
  1586. rT178make(n,a1,a2,a3);
  1587. R=(T0 *)n;}}
  1588. /*FI*/return R;
  1589. }
  1590. void rT49error(/*C*/T0 * a1,T0* a2){
  1591. /*UT*/(T43*)oRBC27eh;
  1592. rT43add_position(a1);
  1593. rT43error((T43*)oRBC27eh,a2);
  1594. }
  1595. void rT49ecp(T49 *C,T0* a1){
  1596. rT49error(rT49current_position(C),a1);
  1597. }
  1598. void rT49fcp(T49 *C,T0* a1){
  1599. /*UT*/(T43*)oRBC27eh;
  1600. rT43add_position(rT49current_position(C));
  1601. rT49fatal_error(a1);
  1602. }
  1603. void rT49copy(T49 *C,T0 * a1){
  1604. /*IF*//*AF*//*AE*/
  1605. memcpy(C,a1,s[C->id]);
  1606. /*FI*/}
  1607. T0*oRBC49lcs;
  1608. T0*oRBC49text;
  1609. void rT49wcp(T49 *C,T0* a1){
  1610. rT49warning(rT49current_position(C),a1);
  1611. }
  1612. T0 * rT49pos(/*C*/int a1,int a2){
  1613. T0 * R=NULL;
  1614. {T44 *n=((T44*)new(44));
  1615. rT44make(n,a1,a2);
  1616. R=(T0 *)n;}
  1617. return R;
  1618. }
  1619. int rT49a_e0(T49 *C){
  1620. int R=0;
  1621. R=rT49a_e1(C);
  1622. rT49a_r1(C,(C)->_last_expression);
  1623. return R;
  1624. }
  1625. int rT49a_e1(T49 *C){
  1626. int R=0;
  1627. R=rT49a_e2(C);
  1628. rT49a_r2(C,(C)->_last_expression);
  1629. return R;
  1630. }
  1631. int rT49a_e2(T49 *C){
  1632. int R=0;
  1633. R=rT49a_e3(C);
  1634. rT49a_r3(C,(C)->_last_expression);
  1635. return R;
  1636. }
  1637. int rT49a_e3(T49 *C){
  1638. int R=0;
  1639. R=rT49a_e4(C);
  1640. rT49a_r4(C,(C)->_last_expression);
  1641. return R;
  1642. }
  1643. int rT49a_e4(T49 *C){
  1644. int R=0;
  1645. R=rT49a_e5(C);
  1646. rT49a_r5(C,(C)->_last_expression);
  1647. return R;
  1648. }
  1649. int rT49a_e5(T49 *C){
  1650. int R=0;
  1651. R=rT49a_e6(C);
  1652. rT49a_r6(C,(C)->_last_expression);
  1653. return R;
  1654. }
  1655. int rT49a_e6(T49 *C){
  1656. int R=0;
  1657. R=rT49a_e7(C);
  1658. rT49a_r7(C,(C)->_last_expression);
  1659. return R;
  1660. }
  1661. int rT49a_e7(T49 *C){
  1662. int R=0;
  1663. R=rT49a_e8(C);
  1664. rT49a_r8(C,(C)->_last_expression);
  1665. return R;
  1666. }
  1667. int rT49a_e8(T49 *C){
  1668. int R=0;
  1669. T0 * _sp=NULL;
  1670. T0 * _prefix_freeop=NULL;
  1671. T0 * _op=NULL;
  1672. T0 * _prefix_moins=NULL;
  1673. T0 * _prefix_plus=NULL;
  1674. T0 * _prefix_not=NULL;
  1675. /*IF*/if (rT49a_keyword(C,(T0 *)ms82)) {
  1676. {T44 *n=((T44*)new(44));
  1677. rT44make(n,(C)->_start_line,(C)->_start_column);
  1678. _sp=(T0 *)n;}
  1679. /*IF*/if (rT49a_e8(C)) {
  1680. {T159 *n=((T159*)new(159));
  1681. rT159make(n,_sp,(C)->_last_expression);
  1682. _prefix_not=(T0 *)n;}
  1683. C->_last_expression=_prefix_not;
  1684. R=1;
  1685. }
  1686. else {
  1687. rT49err_exp(_sp,(T0 *)ms82);
  1688. }
  1689. /*FI*/}
  1690.  else if (rT49skip1(C,'\53')) {
  1691. {T44 *n=((T44*)new(44));
  1692. rT44make(n,(C)->_start_line,(C)->_start_column);
  1693. _sp=(T0 *)n;}
  1694. /*IF*/if (rT49a_e8(C)) {
  1695. {T163 *n=((T163*)new(163));
  1696. rT163make(n,_sp,(C)->_last_expression);
  1697. _prefix_plus=(T0 *)n;}
  1698. C->_last_expression=_prefix_plus;
  1699. R=1;
  1700. }
  1701. else {
  1702. rT49err_exp(_sp,(T0 *)ms283);
  1703. }
  1704. /*FI*/}
  1705.  else if (rT49skip1(C,'\55')) {
  1706. {T44 *n=((T44*)new(44));
  1707. rT44make(n,(C)->_start_line,(C)->_start_column);
  1708. _sp=(T0 *)n;}
  1709. /*IF*/if (rT49a_e8(C)) {
  1710. {T164 *n=((T164*)new(164));
  1711. rT164make(n,_sp,(C)->_last_expression);
  1712. _prefix_moins=(T0 *)n;}
  1713. C->_last_expression=_prefix_moins;
  1714. R=1;
  1715. }
  1716. else {
  1717. rT49err_exp(_sp,(T0 *)ms284);
  1718. }
  1719. /*FI*/}
  1720.  else if (rT49a_free_operator(C)) {
  1721. _op=rT67to_prefix_name((T67*)rT49tmp_operator());
  1722. /*IF*/if (rT49a_e8(C)) {
  1723. {T165 *n=((T165*)new(165));
  1724. rT165make(n,(C)->_last_expression,_op);
  1725. _prefix_freeop=(T0 *)n;}
  1726. C->_last_expression=_prefix_freeop;
  1727. R=1;
  1728. }
  1729. else {
  1730. /*UT*/(T43*)oRBC27eh;
  1731. rT43append((T0 *)ms285);
  1732. rT49err_exp(((T64*)_op)->_start_position,((T64*)_op)->_to_string);
  1733. }
  1734. /*FI*/}
  1735. else {
  1736. R=rT49a_e9(C);
  1737. }
  1738. /*FI*/return R;
  1739. }
  1740. int rT49a_e9(T49 *C){
  1741. int R=0;
  1742. T0 * _e_old=NULL;
  1743. /*IF*/if (rT49a_keyword(C,(T0 *)ms286)) {
  1744. /*IF*/if (!((C)->_in_ensure)) {
  1745. rT49error(rT49pos((C)->_start_line,(C)->_start_column),(T0 *)ms287);
  1746. }
  1747. /*FI*//*IF*/if (rT49a_e10(C)) {
  1748. {T166 *n=((T166*)new(166));
  1749. /*(IRF3*/((n)->_expression)=((C)->_last_expression);
  1750. /*)*/_e_old=(T0 *)n;}
  1751. C->_last_expression=_e_old;
  1752. R=1;
  1753. }
  1754. else {
  1755. rT49fcp(C,(T0 *)ms302);
  1756. }
  1757. /*FI*/}
  1758. else {
  1759. R=rT49a_e10(C);
  1760. }
  1761. /*FI*/return R;
  1762. }
  1763. void rT49a_r1(T49 *C,T0 * a1){
  1764. T0 * _sp=NULL;
  1765. T0 * _infix_implies=NULL;
  1766. /*IF*/if (rT49a_keyword(C,(T0 *)ms100)) {
  1767. {T44 *n=((T44*)new(44));
  1768. rT44make(n,(C)->_start_line,(C)->_start_column);
  1769. _sp=(T0 *)n;}
  1770. /*IF*/if (rT49a_e1(C)) {
  1771. {T200 *n=((T200*)new(200));
  1772. rT200make(n,a1,_sp,(C)->_last_expression);
  1773. _infix_implies=(T0 *)n;}
  1774. rT49a_r1(C,_infix_implies);
  1775. }
  1776. else {
  1777. rT49error(_sp,(T0 *)ms324);
  1778. }
  1779. /*FI*/}
  1780. else {
  1781. C->_last_expression=a1;
  1782. }
  1783. /*FI*/}
  1784. void rT49a_r2(T49 *C,T0 * a1){
  1785. T0 * _sp=NULL;
  1786. T0 * _infix_xor=NULL;
  1787. T0 * _infix_or=NULL;
  1788. T0 * _infix_or_else=NULL;
  1789. /*IF*/if (rT49a_keyword(C,(T0 *)ms104)) {
  1790. {T44 *n=((T44*)new(44));
  1791. rT44make(n,(C)->_start_line,(C)->_start_column);
  1792. _sp=(T0 *)n;}
  1793. /*IF*/if (rT49a_keyword(C,(T0 *)ms105)) {
  1794. /*IF*/if (rT49a_e2(C)) {
  1795. {T197 *n=((T197*)new(197));
  1796. rT197make(n,a1,_sp,(C)->_last_expression);
  1797. _infix_or_else=(T0 *)n;}
  1798. rT49a_r2(C,_infix_or_else);
  1799. }
  1800. else {
  1801. rT49err_exp(_sp,(T0 *)ms106);
  1802. }
  1803. /*FI*/}
  1804. else {
  1805. /*IF*/if (rT49a_e2(C)) {
  1806. {T198 *n=((T198*)new(198));
  1807. rT198make(n,a1,_sp,(C)->_last_expression);
  1808. _infix_or=(T0 *)n;}
  1809. rT49a_r2(C,_infix_or);
  1810. }
  1811. else {
  1812. rT49err_exp(_sp,(T0 *)ms104);
  1813. }
  1814. /*FI*/}
  1815. /*FI*/}
  1816.  else if (rT49a_keyword(C,(T0 *)ms99)) {
  1817. {T44 *n=((T44*)new(44));
  1818. rT44make(n,(C)->_start_line,(C)->_start_column);
  1819. _sp=(T0 *)n;}
  1820. /*IF*/if (rT49a_e2(C)) {
  1821. {T199 *n=((T199*)new(199));
  1822. rT199make(n,a1,_sp,(C)->_last_expression);
  1823. _infix_xor=(T0 *)n;}
  1824. rT49a_r2(C,_infix_xor);
  1825. }
  1826. else {
  1827. rT49err_exp(_sp,(T0 *)ms99);
  1828. }
  1829. /*FI*/}
  1830. else {
  1831. C->_last_expression=a1;
  1832. }
  1833. /*FI*/}
  1834. void rT49a_r3(T49 *C,T0 * a1){
  1835. T0 * _sp=NULL;
  1836. T0 * _infix_and=NULL;
  1837. T0 * _infix_and_then=NULL;
  1838. /*IF*/if (rT49a_keyword(C,(T0 *)ms101)) {
  1839. {T44 *n=((T44*)new(44));
  1840. rT44make(n,(C)->_start_line,(C)->_start_column);
  1841. _sp=(T0 *)n;}
  1842. /*IF*/if (rT49a_keyword(C,(T0 *)ms102)) {
  1843. /*IF*/if (rT49a_e3(C)) {
  1844. {T195 *n=((T195*)new(195));
  1845. rT195make(n,a1,_sp,(C)->_last_expression);
  1846. _infix_and_then=(T0 *)n;}
  1847. rT49a_r3(C,_infix_and_then);
  1848. }
  1849. else {
  1850. rT49err_exp(_sp,(T0 *)ms103);
  1851. }
  1852. /*FI*/}
  1853. else {
  1854. /*IF*/if (rT49a_e3(C)) {
  1855. {T196 *n=((T196*)new(196));
  1856. rT196make(n,a1,_sp,(C)->_last_expression);
  1857. _infix_and=(T0 *)n;}
  1858. rT49a_r3(C,_infix_and);
  1859. }
  1860. else {
  1861. rT49err_exp(_sp,(T0 *)ms101);
  1862. }
  1863. /*FI*/}
  1864. /*FI*/}
  1865. else {
  1866. C->_last_expression=a1;
  1867. }
  1868. /*FI*/}
  1869. void rT49a_r4(T49 *C,T0 * a1){
  1870. T0 * _sp=NULL;
  1871. T0 * _infix_gt=NULL;
  1872. T0 * _infix_ge=NULL;
  1873. T0 * _infix_lt=NULL;
  1874. T0 * _infix_le=NULL;
  1875. T0 * _infix_not_equal=NULL;
  1876. T0 * _infix_equal=NULL;
  1877. /*IF*/if (rT49skip1(C,'\75')) {
  1878. {T44 *n=((T44*)new(44));
  1879. rT44make(n,(C)->_start_line,(C)->_start_column);
  1880. _sp=(T0 *)n;}
  1881. /*IF*/if (rT49a_e4(C)) {
  1882. {T189 *n=((T189*)new(189));
  1883. rT189make(n,a1,_sp,(C)->_last_expression);
  1884. _infix_equal=(T0 *)n;}
  1885. rT49a_r4(C,_infix_equal);
  1886. }
  1887. else {
  1888. rT49err_exp(_sp,(T0 *)ms313);
  1889. }
  1890. /*FI*/}
  1891.  else if (rT49skip2(C,'\57','\75')) {
  1892. {T44 *n=((T44*)new(44));
  1893. rT44make(n,(C)->_start_line,(C)->_start_column);
  1894. _sp=(T0 *)n;}
  1895. /*IF*/if (rT49a_e4(C)) {
  1896. {T190 *n=((T190*)new(190));
  1897. rT190make(n,a1,_sp,(C)->_last_expression);
  1898. _infix_not_equal=(T0 *)n;}
  1899. rT49a_r4(C,_infix_not_equal);
  1900. }
  1901. else {
  1902. rT49err_exp(_sp,(T0 *)ms315);
  1903. }
  1904. /*FI*/}
  1905.  else if (rT49skip2(C,'\74','\75')) {
  1906. {T44 *n=((T44*)new(44));
  1907. rT44make(n,(C)->_start_line,(C)->_start_column);
  1908. _sp=(T0 *)n;}
  1909. /*IF*/if (rT49a_e4(C)) {
  1910. {T191 *n=((T191*)new(191));
  1911. rT191make(n,a1,_sp,(C)->_last_expression);
  1912. _infix_le=(T0 *)n;}
  1913. rT49a_r4(C,_infix_le);
  1914. }
  1915. else {
  1916. rT49err_exp(_sp,(T0 *)ms317);
  1917. }
  1918. /*FI*/}
  1919.  else if (rT49skip2(C,'\76','\75')) {
  1920. {T44 *n=((T44*)new(44));
  1921. rT44make(n,(C)->_start_line,(C)->_start_column);
  1922. _sp=(T0 *)n;}
  1923. /*IF*/if (rT49a_e4(C)) {
  1924. {T193 *n=((T193*)new(193));
  1925. rT193make(n,a1,_sp,(C)->_last_expression);
  1926. _infix_ge=(T0 *)n;}
  1927. rT49a_r4(C,_infix_ge);
  1928. }
  1929. else {
  1930. rT49err_exp(_sp,(T0 *)ms319);
  1931. }
  1932. /*FI*/}
  1933.  else if (rT49skip1(C,'\74')) {
  1934. {T44 *n=((T44*)new(44));
  1935. rT44make(n,(C)->_start_line,(C)->_start_column);
  1936. _sp=(T0 *)n;}
  1937. /*IF*/if (rT49a_e4(C)) {
  1938. {T192 *n=((T192*)new(192));
  1939. rT192make(n,a1,_sp,(C)->_last_expression);
  1940. _infix_lt=(T0 *)n;}
  1941. rT49a_r4(C,_infix_lt);
  1942. }
  1943. else {
  1944. rT49err_exp(_sp,(T0 *)ms321);
  1945. }
  1946. /*FI*/}
  1947.  else if (rT49skip1unless2(C,'\76','\76')) {
  1948. {T44 *n=((T44*)new(44));
  1949. rT44make(n,(C)->_start_line,(C)->_start_column);
  1950. _sp=(T0 *)n;}
  1951. /*IF*/if (rT49a_e4(C)) {
  1952. {T194 *n=((T194*)new(194));
  1953. rT194make(n,a1,_sp,(C)->_last_expression);
  1954. _infix_gt=(T0 *)n;}
  1955. rT49a_r4(C,_infix_gt);
  1956. }
  1957. else {
  1958. rT49err_exp(_sp,(T0 *)ms323);
  1959. }
  1960. /*FI*/}
  1961. else {
  1962. C->_last_expression=a1;
  1963. }
  1964. /*FI*/}
  1965. void rT49a_r5(T49 *C,T0 * a1){
  1966. T0 * _sp=NULL;
  1967. T0 * _infix_minus=NULL;
  1968. T0 * _infix_plus=NULL;
  1969. /*IF*/if (rT49skip1(C,'\53')) {
  1970. {T44 *n=((T44*)new(44));
  1971. rT44make(n,(C)->_start_line,(C)->_start_column);
  1972. _sp=(T0 *)n;}
  1973. /*IF*/if (rT49a_e5(C)) {
  1974. {T187 *n=((T187*)new(187));
  1975. rT187make(n,a1,_sp,(C)->_last_expression);
  1976. _infix_plus=(T0 *)n;}
  1977. rT49a_r5(C,_infix_plus);
  1978. }
  1979. else {
  1980. rT49err_exp(_sp,(T0 *)ms84);
  1981. }
  1982. /*FI*/}
  1983.  else if (rT49skip1(C,'\55')) {
  1984. {T44 *n=((T44*)new(44));
  1985. rT44make(n,(C)->_start_line,(C)->_start_column);
  1986. _sp=(T0 *)n;}
  1987. /*IF*/if (rT49a_e5(C)) {
  1988. {T188 *n=((T188*)new(188));
  1989. rT188make(n,a1,_sp,(C)->_last_expression);
  1990. _infix_minus=(T0 *)n;}
  1991. rT49a_r5(C,_infix_minus);
  1992. }
  1993. else {
  1994. rT49err_exp(_sp,(T0 *)ms85);
  1995. }
  1996. /*FI*/}
  1997. else {
  1998. C->_last_expression=a1;
  1999. }
  2000. /*FI*/}
  2001. void rT49a_r6(T49 *C,T0 * a1){
  2002. T0 * _sp=NULL;
  2003. T0 * _infix_div=NULL;
  2004. T0 * _infix_int_rem=NULL;
  2005. T0 * _infix_int_div=NULL;
  2006. T0 * _infix_times=NULL;
  2007. /*IF*/if (rT49skip1(C,'\52')) {
  2008. {T44 *n=((T44*)new(44));
  2009. rT44make(n,(C)->_start_line,(C)->_start_column);
  2010. _sp=(T0 *)n;}
  2011. /*IF*/if (rT49a_e6(C)) {
  2012. {T183 *n=((T183*)new(183));
  2013. rT183make(n,a1,_sp,(C)->_last_expression);
  2014. _infix_times=(T0 *)n;}
  2015. rT49a_r6(C,_infix_times);
  2016. }
  2017. else {
  2018. rT49err_exp(_sp,(T0 *)ms307);
  2019. }
  2020. /*FI*/}
  2021.  else if (rT49skip2(C,'\57','\57')) {
  2022. {T44 *n=((T44*)new(44));
  2023. rT44make(n,(C)->_start_line,(C)->_start_column);
  2024. _sp=(T0 *)n;}
  2025. /*IF*/if (rT49a_e6(C)) {
  2026. {T184 *n=((T184*)new(184));
  2027. rT184make(n,a1,_sp,(C)->_last_expression);
  2028. _infix_int_div=(T0 *)n;}
  2029. rT49a_r6(C,_infix_int_div);
  2030. }
  2031. else {
  2032. rT49err_exp(_sp,(T0 *)ms309);
  2033. }
  2034. /*FI*/}
  2035.  else if (rT49skip2(C,'\134','\134')) {
  2036. {T44 *n=((T44*)new(44));
  2037. rT44make(n,(C)->_start_line,(C)->_start_column);
  2038. _sp=(T0 *)n;}
  2039. /*IF*/if (rT49a_e6(C)) {
  2040. {T185 *n=((T185*)new(185));
  2041. rT185make(n,a1,_sp,(C)->_last_expression);
  2042. _infix_int_rem=(T0 *)n;}
  2043. rT49a_r6(C,_infix_int_rem);
  2044. }
  2045. else {
  2046. rT49err_exp(_sp,(T0 *)ms311);
  2047. }
  2048. /*FI*/}
  2049.  else if (rT49skip1unless2(C,'\57','\75')) {
  2050. {T44 *n=((T44*)new(44));
  2051. rT44make(n,(C)->_start_line,(C)->_start_column);
  2052. _sp=(T0 *)n;}
  2053. /*IF*/if (rT49a_e6(C)) {
  2054. {T186 *n=((T186*)new(186));
  2055. rT186make(n,a1,_sp,(C)->_last_expression);
  2056. _infix_div=(T0 *)n;}
  2057. rT49a_r6(C,_infix_div);
  2058. }
  2059. else {
  2060. rT49err_exp(_sp,(T0 *)ms95);
  2061. }
  2062. /*FI*/}
  2063. else {
  2064. C->_last_expression=a1;
  2065. }
  2066. /*FI*/}
  2067. int rT49skip1unless2(T49 *C,char a1,char a2){
  2068. int R=0;
  2069. C->_start_line=(C)->_line;
  2070. C->_start_column=(C)->_column;
  2071. /*IF*/if (((C)->_cc)==(a1)) {
  2072. rT49next_char(C);
  2073. /*IF*/if (((C)->_cc)==(a2)) {
  2074. rT49prev_char(C);
  2075. }
  2076. else {
  2077. R=1;
  2078. rT49skip_comments(C);
  2079. }
  2080. /*FI*/}
  2081. /*FI*/return R;
  2082. }
  2083. int rT49skip1(T49 *C,char a1){
  2084. int R=0;
  2085. /*IF*/if ((a1)==((C)->_cc)) {
  2086. C->_start_line=(C)->_line;
  2087. C->_start_column=(C)->_column;
  2088. R=1;
  2089. rT49next_char(C);
  2090. rT49skip_comments(C);
  2091. }
  2092. /*FI*/return R;
  2093. }
  2094. void rT49a_r7(T49 *C,T0 * a1){
  2095. T0 * _sp=NULL;
  2096. T0 * _infix_power=NULL;
  2097. /*IF*/if (rT49skip1(C,'\136')) {
  2098. {T44 *n=((T44*)new(44));
  2099. rT44make(n,(C)->_start_line,(C)->_start_column);
  2100. _sp=(T0 *)n;}
  2101. /*IF*/if (rT49a_e7(C)) {
  2102. {T182 *n=((T182*)new(182));
  2103. rT182make(n,a1,_sp,(C)->_last_expression);
  2104. _infix_power=(T0 *)n;}
  2105. rT49a_r7(C,_infix_power);
  2106. }
  2107. else {
  2108. rT49err_exp(_sp,(T0 *)ms305);
  2109. }
  2110. /*FI*/}
  2111. else {
  2112. C->_last_expression=a1;
  2113. }
  2114. /*FI*/}
  2115. int rT49skip2(T49 *C,char a1,char a2){
  2116. int R=0;
  2117. /*IF*/if ((a1)==((C)->_cc)) {
  2118. C->_start_line=(C)->_line;
  2119. C->_start_column=(C)->_column;
  2120. rT49next_char(C);
  2121. /*IF*/if ((a2)==((C)->_cc)) {
  2122. R=1;
  2123. rT49next_char(C);
  2124. rT49skip_comments(C);
  2125. }
  2126. else {
  2127. rT49prev_char(C);
  2128. }
  2129. /*FI*/}
  2130. /*FI*/return R;
  2131. }
  2132. void rT49a_r8(T49 *C,T0 * a1){
  2133. T0 * _infix_freeop=NULL;
  2134. T0 * _infix_name=NULL;
  2135. /*IF*/if (rT49a_free_operator(C)) {
  2136. _infix_name=rT67to_infix_name_use((T67*)rT49tmp_operator());
  2137. /*IF*/if (rT49a_e8(C)) {
  2138. {T180 *n=((T180*)new(180));
  2139. rT180make(n,a1,_infix_name,(C)->_last_expression);
  2140. _infix_freeop=(T0 *)n;}
  2141. rT49a_r8(C,_infix_freeop);
  2142. }
  2143. else {
  2144. rT49err_exp(((T68*)_infix_name)->_start_position,((T68*)_infix_name)->_to_string);
  2145. }
  2146. /*FI*/}
  2147. else {
  2148. C->_last_expression=a1;
  2149. }
  2150. /*FI*/}
  2151. int rT49a_debug(T49 *C){
  2152. int R=0;
  2153. T0 * _e_debug=NULL;
  2154. T0* _list=NULL;
  2155. T0 * _sp=NULL;
  2156. /*IF*/if (rT49a_keyword(C,(T0 *)ms344)) {
  2157. {T44 *n=((T44*)new(44));
  2158. rT44make(n,(C)->_start_line,(C)->_start_column);
  2159. _sp=(T0 *)n;}
  2160. /*IF*/if (rT49skip1(C,'\50')) {
  2161. while (!(!(rT49a_manifest_string(C)))) {
  2162. /*IF*/if (!(_list)) {
  2163. _list=ma(149,0,1,(C)->_last_manifest_string);
  2164. }
  2165. else {
  2166. rT149add_last((T149*)_list,(C)->_last_manifest_string);
  2167. }
  2168. /*FI*/C->_ok=rT49skip1(C,'\54');
  2169. }
  2170. /*IF*/if (!(_list)) {
  2171. rT49wcp(C,(T0 *)ms345);
  2172. }
  2173. /*FI*//*IF*/if (!(rT49skip1(C,'\51'))) {
  2174. rT49fcp(C,(T0 *)ms346);
  2175. }
  2176. /*FI*/}
  2177. /*FI*/R=1;
  2178. {T213 *n=((T213*)new(213));
  2179. rT213make(n,_sp,_list,rT49a_compound2(C,(T0 *)ms350,(T0 *)ms119));
  2180. _e_debug=(T0 *)n;}
  2181. C->_last_instruction=_e_debug;
  2182. }
  2183. /*FI*/return R;
  2184. }
  2185. int rT49a_feature_declaration(T49 *C){
  2186. int R=0;
  2187. rT134initialize((T134*)oRBC49tmp_feature);
  2188. /*IF*/if (rT49a_keyword(C,(T0 *)ms252)) {
  2189. /*IF*/if (rT49a_feature_name(C)) {
  2190. R=1;
  2191. XrT65set_is_frozen((C)->_last_feature_name,1);
  2192. /*UT*/(T134*)oRBC49tmp_feature;
  2193. rT134add_synonym((C)->_last_feature_name);
  2194. }
  2195. else {
  2196. rT49fcp(C,(T0 *)ms238);
  2197. }
  2198. /*FI*/}
  2199.  else if (rT49a_feature_name(C)) {
  2200. R=1;
  2201. /*UT*/(T134*)oRBC49tmp_feature;
  2202. rT134add_synonym((C)->_last_feature_name);
  2203. }
  2204. /*FI*/while (!(!(rT49skip1(C,'\54')))) {
  2205. /*IF*/if (rT49a_keyword(C,(T0 *)ms253)) {
  2206. /*IF*/if (rT49a_feature_name(C)) {
  2207. XrT65set_is_frozen((C)->_last_feature_name,1);
  2208. /*UT*/(T134*)oRBC49tmp_feature;
  2209. rT134add_synonym((C)->_last_feature_name);
  2210. }
  2211. else {
  2212. rT49fcp(C,(T0 *)ms254);
  2213. }
  2214. /*FI*/}
  2215.  else if (rT49a_feature_name(C)) {
  2216. /*UT*/(T134*)oRBC49tmp_feature;
  2217. rT134add_synonym((C)->_last_feature_name);
  2218. }
  2219. else {
  2220. rT49ecp(C,(T0 *)ms255);
  2221. }
  2222. /*FI*/}
  2223. /*IF*/if (R) {
  2224. rT49a_formal_arg_list(C);
  2225. C->_function_type=NULL;
  2226. /*IF*/if (rT49skip1(C,'\72')) {
  2227. /*IF*/if (!(rT49a_type(C))) {
  2228. rT49fcp(C,(T0 *)ms261);
  2229. }
  2230. else {
  2231. C->_function_type=(C)->_last_type;
  2232. /*(IRF3*/(((T134*)oRBC49tmp_feature)->_type)=((C)->_last_type);
  2233. /*)*/}
  2234. /*FI*/}
  2235. /*FI*//*IF*/if (rT49a_keyword(C,(T0 *)ms262)) {
  2236. /*IF*/if (rT49a_keyword(C,(T0 *)ms263)) {
  2237. C->_last_feature_declaration=rT134to_cst_att_unique((T134*)oRBC49tmp_feature);
  2238. }
  2239.  else if (rT49a_boolean_constant(C)) {
  2240. C->_last_feature_declaration=rT134to_cst_att_boolean((T134*)oRBC49tmp_feature,(C)->_last_boolean_constant);
  2241. }
  2242.  else if (rT49a_character_constant(C)) {
  2243. C->_last_feature_declaration=rT134to_cst_att_character((T134*)oRBC49tmp_feature,(C)->_last_character_constant);
  2244. }
  2245.  else if (rT49a_manifest_string(C)) {
  2246. C->_last_feature_declaration=rT134to_cst_att_string((T134*)oRBC49tmp_feature,(C)->_last_manifest_string);
  2247. }
  2248.  else if (rT49a_bit_constant(C)) {
  2249. C->_last_feature_declaration=rT134to_cst_att_bit((T134*)oRBC49tmp_feature,(C)->_last_bit_constant);
  2250. }
  2251.  else if (rT49a_real_constant(C)) {
  2252. C->_last_feature_declaration=rT134to_cst_att_real((T134*)oRBC49tmp_feature,(C)->_last_real_constant);
  2253. }
  2254.  else if (rT49a_integer_constant(C)) {
  2255. C->_last_feature_declaration=rT134to_cst_att_integer((T134*)oRBC49tmp_feature,(C)->_last_integer_constant);
  2256. }
  2257. else {
  2258. C->_last_feature_declaration=rT49a_routine(C);
  2259. }
  2260. /*FI*/}
  2261. else {
  2262. C->_last_feature_declaration=rT134to_writable_attribute((T134*)oRBC49tmp_feature);
  2263. }
  2264. /*FI*/C->_function_type=NULL;
  2265. C->_arguments=NULL;
  2266. }
  2267. /*FI*/return R;
  2268. }
  2269. void rT49a_feature_clause(T49 *C){
  2270. T0* _aof=NULL;
  2271. T0 * _comment=NULL;
  2272. T0 * _clients=NULL;
  2273. T0 * _feature_clause=NULL;
  2274. _clients=rT49a_clients(C);
  2275. _comment=rT49get_comments(C);
  2276. while (!(!(rT49a_feature_declaration(C)))) {
  2277. C->_ok=rT49skip1(C,'\73');
  2278. /*IF*/if (((int)(C)->_last_feature_declaration)) {
  2279. /*IF*/if (!(_aof)) {
  2280. _aof=ma(61,0,1,(C)->_last_feature_declaration);
  2281. }
  2282. else {
  2283. rT61add_last((T61*)_aof,(C)->_last_feature_declaration);
  2284. }
  2285. /*FI*/XrT60set_header_comment((C)->_last_feature_declaration,rT49get_comments(C));
  2286. }
  2287. /*FI*/}
  2288. /*IF*/if ((((int)_aof))||(((int)_comment))) {
  2289. {T133 *n=((T133*)new(133));
  2290. rT133make(n,_clients,_comment,_aof);
  2291. _feature_clause=(T0 *)n;}
  2292. rT48add_feature_clause((T48*)(C)->_last_base_class,_feature_clause);
  2293. }
  2294. /*FI*/}
  2295. int rT49a_feature_list(T49 *C){
  2296. int R=0;
  2297. int _state=0;
  2298. C->_last_feature_list=NULL;
  2299. while (!((_state)>=(3))) {
  2300. {int iv1=_state;
  2301. if (0 == iv1) goto l132;
  2302. goto l133;
  2303.  l132: ;
  2304. /*IF*/if (rT49a_feature_name(C)) {
  2305. C->_last_feature_list=ma(127,0,1,(C)->_last_feature_name);
  2306. R=1;
  2307. _state=1;
  2308. }
  2309.  else if (((C)->_cc)==('\54')) {
  2310. rT49wcp(C,(T0 *)ms232);
  2311. C->_ok=rT49skip1(C,'\54');
  2312. }
  2313. else {
  2314. _state=3;
  2315. }
  2316. /*FI*/goto l131;
  2317.  l133: ;
  2318. if (1 == iv1) goto l134;
  2319. goto l135;
  2320.  l134: ;
  2321. /*IF*/if (((C)->_cc)==('\54')) {
  2322. C->_ok=rT49skip1(C,'\54');
  2323. _state=2;
  2324. }
  2325.  else if (rT49a_feature_name(C)) {
  2326. rT49warning(XrT65start_position((C)->_last_feature_name),(T0 *)ms215);
  2327. rT127add_last((T127*)(C)->_last_feature_list,(C)->_last_feature_name);
  2328. }
  2329. else {
  2330. _state=3;
  2331. }
  2332. /*FI*/goto l131;
  2333.  l135: ;
  2334. if (2 == iv1) goto l136;
  2335. goto l137;
  2336.  l136: ;
  2337. /*IF*/if (rT49a_feature_name(C)) {
  2338. rT127add_last((T127*)(C)->_last_feature_list,(C)->_last_feature_name);
  2339. _state=1;
  2340. }
  2341.  else if (((C)->_cc)==('\54')) {
  2342. rT49wcp(C,(T0 *)ms212);
  2343. C->_ok=rT49skip1(C,'\54');
  2344. }
  2345. else {
  2346. rT49ecp(C,(T0 *)ms238);
  2347. _state=3;
  2348. }
  2349. /*FI*/goto l131;
  2350.  l137: ;
  2351.  l131: ;
  2352. }
  2353. }
  2354. return R;
  2355. }
  2356. int rT49a_feature_name(T49 *C){
  2357. int R=0;
  2358. /*IF*/if (rT49a_prefix(C)) {
  2359. C->_last_feature_name=(C)->_last_prefix;
  2360. R=1;
  2361. }
  2362.  else if (rT49a_infix(C)) {
  2363. C->_last_feature_name=(C)->_last_infix;
  2364. R=1;
  2365. }
  2366.  else if (rT49a_identifier(C)) {
  2367. C->_last_feature_name=rT67to_feature_name((T67*)rT49tmp_name());
  2368. R=1;
  2369. }
  2370. /*FI*/return R;
  2371. }
  2372. int rT49a_character_constant(T49 *C){
  2373. int R=0;
  2374. char _value='\0';
  2375. int _printing_mode=0;
  2376. int _state=0;
  2377. T0 * _sp=NULL;
  2378. /*IF*/if (((C)->_cc)==('\47')) {
  2379. {T44 *n=((T44*)new(44));
  2380. rT44make(n,(C)->_line,(C)->_column);
  2381. _sp=(T0 *)n;}
  2382. R=1;
  2383. while (!((_state)>(2))) {
  2384. rT49next_char(C);
  2385. {int iv1=_state;
  2386. if (0 == iv1) goto l139;
  2387. goto l140;
  2388.  l139: ;
  2389. {int iv2=(C)->_cc;
  2390. if (37 == iv2) goto l142;
  2391. goto l143;
  2392.  l142: ;
  2393. _state=1;
  2394. goto l141;
  2395.  l143: ;
  2396. if (39 == iv2) goto l144;
  2397. goto l145;
  2398.  l144: ;
  2399. rT49fcp(C,(T0 *)ms160);
  2400. _state=2;
  2401. goto l141;
  2402.  l145: ;
  2403. _value=(C)->_cc;
  2404. _printing_mode=0;
  2405. _state=2;
  2406.  l141: ;
  2407. }
  2408. goto l138;
  2409.  l140: ;
  2410. if (1 == iv1) goto l146;
  2411. goto l147;
  2412.  l146: ;
  2413. _printing_mode=1;
  2414. _state=2;
  2415. {int iv2=(C)->_cc;
  2416. if (65 == iv2) goto l149;
  2417. goto l150;
  2418.  l149: ;
  2419. _value='\100';
  2420. goto l148;
  2421.  l150: ;
  2422. if (66 == iv2) goto l151;
  2423. goto l152;
  2424.  l151: ;
  2425. _value='\10';
  2426. goto l148;
  2427.  l152: ;
  2428. if (67 == iv2) goto l153;
  2429. goto l154;
  2430.  l153: ;
  2431. _value='\136';
  2432. goto l148;
  2433.  l154: ;
  2434. if (68 == iv2) goto l155;
  2435. goto l156;
  2436.  l155: ;
  2437. _value='\44';
  2438. goto l148;
  2439.  l156: ;
  2440. if (70 == iv2) goto l157;
  2441. goto l158;
  2442.  l157: ;
  2443. _value='\14';
  2444. goto l148;
  2445.  l158: ;
  2446. if (72 == iv2) goto l159;
  2447. goto l160;
  2448.  l159: ;
  2449. _value='\134';
  2450. goto l148;
  2451.  l160: ;
  2452. if (76 == iv2) goto l161;
  2453. goto l162;
  2454.  l161: ;
  2455. _value='\176';
  2456. goto l148;
  2457.  l162: ;
  2458. if (78 == iv2) goto l163;
  2459. goto l164;
  2460.  l163: ;
  2461. _value='\12';
  2462. goto l148;
  2463.  l164: ;
  2464. if (81 == iv2) goto l165;
  2465. goto l166;
  2466.  l165: ;
  2467. _value='\140';
  2468. goto l148;
  2469.  l166: ;
  2470. if (82 == iv2) goto l167;
  2471. goto l168;
  2472.  l167: ;
  2473. _value='\15';
  2474. goto l148;
  2475.  l168: ;
  2476. if (83 == iv2) goto l169;
  2477. goto l170;
  2478.  l169: ;
  2479. _value='\43';
  2480. goto l148;
  2481.  l170: ;
  2482. if (84 == iv2) goto l171;
  2483. goto l172;
  2484.  l171: ;
  2485. _value='\11';
  2486. goto l148;
  2487.  l172: ;
  2488. if (85 == iv2) goto l173;
  2489. goto l174;
  2490.  l173: ;
  2491. _value='\0';
  2492. goto l148;
  2493.  l174: ;
  2494. if (86 == iv2) goto l175;
  2495. goto l176;
  2496.  l175: ;
  2497. _value='\174';
  2498. goto l148;
  2499.  l176: ;
  2500. if (37 == iv2) goto l177;
  2501. goto l178;
  2502.  l177: ;
  2503. _value='\45';
  2504. goto l148;
  2505.  l178: ;
  2506. if (39 == iv2) goto l179;
  2507. goto l180;
  2508.  l179: ;
  2509. _value='\47';
  2510. goto l148;
  2511.  l180: ;
  2512. if (34 == iv2) goto l181;
  2513. goto l182;
  2514.  l181: ;
  2515. _value='\42';
  2516. goto l148;
  2517.  l182: ;
  2518. if (40 == iv2) goto l183;
  2519. goto l184;
  2520.  l183: ;
  2521. _value='\133';
  2522. goto l148;
  2523.  l184: ;
  2524. if (41 == iv2) goto l185;
  2525. goto l186;
  2526.  l185: ;
  2527. _value='\135';
  2528. goto l148;
  2529.  l186: ;
  2530. if (60 == iv2) goto l187;
  2531. goto l188;
  2532.  l187: ;
  2533. _value='\173';
  2534. goto l148;
  2535.  l188: ;
  2536. if (62 == iv2) goto l189;
  2537. goto l190;
  2538.  l189: ;
  2539. _value='\175';
  2540. goto l148;
  2541.  l190: ;
  2542. if (47 == iv2) goto l191;
  2543. goto l192;
  2544.  l191: ;
  2545. rT49a_ascii_code(C);
  2546. _value=(C)->_last_ascii_code;
  2547. _printing_mode=2;
  2548. goto l148;
  2549.  l192: ;
  2550. rT49fcp(C,(T0 *)ms164);
  2551.  l148: ;
  2552. }
  2553. goto l138;
  2554.  l147: ;
  2555. _state=3;
  2556. {int iv2=(C)->_cc;
  2557. if (39 == iv2) goto l194;
  2558. goto l195;
  2559.  l194: ;
  2560. goto l193;
  2561.  l195: ;
  2562. rT49fcp(C,(T0 *)ms160);
  2563.  l193: ;
  2564. }
  2565. rT49next_char(C);
  2566. rT49skip_comments(C);
  2567.  l138: ;
  2568. }
  2569. }
  2570. {T73 *n=((T73*)new(73));
  2571. rT73make(n,_sp,_value,_printing_mode);
  2572. C->_last_character_constant=(T0 *)n;}
  2573. }
  2574. /*FI*/return R;
  2575. }
  2576. int rT49a_check(T49 *C){
  2577. int R=0;
  2578. T0* _al=NULL;
  2579. T0 * _hc=NULL;
  2580. T0 * _sp=NULL;
  2581. /*IF*/if (rT49a_keyword(C,(T0 *)ms112)) {
  2582. R=1;
  2583. {T44 *n=((T44*)new(44));
  2584. rT44make(n,(C)->_start_line,(C)->_start_column);
  2585. _sp=(T0 *)n;}
  2586. _hc=rT49get_comments(C);
  2587. _al=rT49a_assertion(C);
  2588. /*IF*/if ((((int)_hc))||(((int)_al))) {
  2589. {T211 *n=((T211*)new(211));
  2590. rT211make(n,_sp,_hc,_al);
  2591. C->_last_instruction=(T0 *)n;}}
  2592. else {
  2593. rT49wcp(C,(T0 *)ms342);
  2594. }
  2595. /*FI*//*IF*/if (!(rT49a_keyword(C,(T0 *)ms119))) {
  2596. rT49fcp(C,(T0 *)ms343);
  2597. }
  2598. /*FI*/}
  2599. /*FI*/return R;
  2600. }
  2601. void rT49a_class_declaration(T49 *C){
  2602. T0* _al=NULL;
  2603. T0 * _hc=NULL;
  2604. T0 * _sp=NULL;
  2605. rT49a_indexing(C);
  2606. /*IF*/if (rT49a_keyword(C,(T0 *)ms175)) {
  2607. rT48set_is_deferred((T48*)(C)->_last_base_class);
  2608. }
  2609. /*FI*//*IF*/if (rT49a_keyword(C,(T0 *)ms121)) {
  2610. rT48set_is_expanded((T48*)(C)->_last_base_class);
  2611. /*IF*/if (rT49a_keyword(C,(T0 *)ms177)) {
  2612. rT48set_is_deferred((T48*)(C)->_last_base_class);
  2613. }
  2614. /*FI*/}
  2615. /*FI*//*(IRF3*/(((T48*)(C)->_last_base_class)->_heading_comment1)=(rT49get_comments(C));
  2616. /*)*//*IF*/if (!(rT49a_keyword(C,(T0 *)ms178))) {
  2617. rT49fcp(C,(T0 *)ms179);
  2618. }
  2619. /*FI*//*IF*/if (rT49a_base_class_name(C)) {
  2620. rT46set_with((T46*)rT49current_class_name(C),(C)->_last_class_name);
  2621. /*IF*/if (rT42fast_has((T42*)oRBC49forbidden_class,((T46*)(C)->_last_class_name)->_to_string)) {
  2622. /*UT*/(T43*)oRBC27eh;
  2623. rT43add_position(((T46*)(C)->_last_class_name)->_start_position);
  2624. rT49fatal_error((T0 *)ms200);
  2625. }
  2626. /*FI*/}
  2627. else {
  2628. rT49fcp(C,(T0 *)ms201);
  2629. }
  2630. /*FI*/rT49a_formal_generic_list(C);
  2631. /*IF*/if (rT49a_keyword(C,(T0 *)ms220)) {
  2632. /*IF*/if (rT49a_manifest_string(C)) {
  2633. /*(IRF3*/(((T48*)(C)->_last_base_class)->_obsolete_type_string)=((C)->_last_manifest_string);
  2634. /*)*/}
  2635. else {
  2636. rT49fcp(C,(T0 *)ms221);
  2637. }
  2638. /*FI*/}
  2639. /*FI*//*(IRF3*/(((T48*)(C)->_last_base_class)->_heading_comment2)=(rT49get_comments(C));
  2640. /*)*//*IF*/if (rT49a_keyword(C,(T0 *)ms222)) {
  2641. rT49a_parent_list(C,rT49pos((C)->_start_line,(C)->_start_column),rT49get_comments(C));
  2642. }
  2643. /*FI*/while (!(!(rT49a_keyword(C,(T0 *)ms114)))) {
  2644. rT49a_creation_clause(C);
  2645. }
  2646. while (!(!(rT49a_keyword(C,(T0 *)ms251)))) {
  2647. rT49a_feature_clause(C);
  2648. }
  2649. /*IF*/if (rT49a_keyword(C,(T0 *)ms405)) {
  2650. {T44 *n=((T44*)new(44));
  2651. rT44make(n,(C)->_start_line,(C)->_start_column);
  2652. _sp=(T0 *)n;}
  2653. _hc=rT49get_comments(C);
  2654. _al=rT49a_assertion(C);
  2655. rT48set_invariant((T48*)(C)->_last_base_class,_sp,_hc,_al);
  2656. }
  2657. /*FI*//*(IRF3*/(((T48*)(C)->_last_base_class)->_end_comment)=(rT49get_comments(C));
  2658. /*)*//*IF*/if (rT49a_keyword(C,(T0 *)ms119)) {
  2659. /*IF*/if (((C)->_cc)==('\73')) {
  2660. rT49wcp(C,(T0 *)ms236);
  2661. C->_ok=rT49skip1(C,'\73');
  2662. }
  2663. /*FI*//*IF*/if (((C)->_cc)!=('\1')) {
  2664. rT49fcp(C,(T0 *)ms406);
  2665. }
  2666. /*FI*//*IF*/if ((((int)(C)->_last_comments))&&((rT57count((T57*)(C)->_last_comments))>(1))) {
  2667. rT49fcp(C,(T0 *)ms407);
  2668. }
  2669. /*FI*/}
  2670. else {
  2671. rT49fcp(C,(T0 *)ms408);
  2672. }
  2673. /*FI*/}
  2674. int rT49a_class_type(T49 *C){
  2675. int R=0;
  2676. T0* _generic_list=NULL;
  2677. T0 * _base_class_name=NULL;
  2678. int _state=0;
  2679. /*IF*/if (rT49a_base_type(C)) {
  2680. C->_last_class_type=(C)->_last_base_type;
  2681. R=1;
  2682. }
  2683.  else if (rT49a_base_class_name(C)) {
  2684. R=1;
  2685. _base_class_name=(C)->_last_class_name;
  2686. while (!((_state)>(2))) {
  2687. {int iv1=_state;
  2688. if (0 == iv1) goto l197;
  2689. goto l198;
  2690.  l197: ;
  2691. /*IF*/if (rT49skip1(C,'\133')) {
  2692. _state=1;
  2693. }
  2694. else {
  2695. {T114 *n=((T114*)new(114));
  2696. /*(IRF3*/((n)->_base_class_name)=(_base_class_name);
  2697. /*)*/C->_last_class_type=(T0 *)n;}_state=3;
  2698. }
  2699. /*FI*/goto l196;
  2700.  l198: ;
  2701. if (1 == iv1) goto l199;
  2702. goto l200;
  2703.  l199: ;
  2704. /*IF*/if (rT49a_type(C)) {
  2705. /*IF*/if (!(_generic_list)) {
  2706. _generic_list=ma(104,0,1,(C)->_last_type);
  2707. }
  2708. else {
  2709. rT104add_last((T104*)_generic_list,(C)->_last_type);
  2710. }
  2711. /*FI*/_state=2;
  2712. }
  2713.  else if (((C)->_cc)==('\54')) {
  2714. rT49wcp(C,(T0 *)ms212);
  2715. C->_ok=rT49skip1(C,'\54');
  2716. }
  2717.  else if (((C)->_cc)==('\135')) {
  2718. _state=2;
  2719. }
  2720. else {
  2721. rT49fcp(C,(T0 *)ms213);
  2722. _state=2;
  2723. }
  2724. /*FI*/goto l196;
  2725.  l200: ;
  2726. /*IF*/if (rT49skip1(C,'\54')) {
  2727. _state=1;
  2728. }
  2729.  else if (((C)->_cc)==('\135')) {
  2730. /*IF*/if (!(_generic_list)) {
  2731. rT49wcp(C,(T0 *)ms214);
  2732. {T114 *n=((T114*)new(114));
  2733. /*(IRF3*/((n)->_base_class_name)=(_base_class_name);
  2734. /*)*/C->_last_class_type=(T0 *)n;}}
  2735. else {
  2736. {T115 *n=((T115*)new(115));
  2737. rT115make(n,_base_class_name,_generic_list);
  2738. C->_last_class_type=(T0 *)n;}}
  2739. /*FI*/C->_ok=rT49skip1(C,'\135');
  2740. _state=3;
  2741. }
  2742.  else if (rT49a_type(C)) {
  2743. /*IF*/if (!(_generic_list)) {
  2744. _generic_list=ma(104,0,1,(C)->_last_type);
  2745. }
  2746. else {
  2747. rT104add_last((T104*)_generic_list,(C)->_last_type);
  2748. }
  2749. /*FI*/rT49warning(XrT56start_position((C)->_last_type),(T0 *)ms215);
  2750. }
  2751. else {
  2752. rT49fcp(C,(T0 *)ms216);
  2753. _state=3;
  2754. }
  2755. /*FI*/ l196: ;
  2756. }
  2757. }
  2758. }
  2759. /*FI*/return R;
  2760. }
  2761. int rT49a_identifier(T49 *C){
  2762. int R=0;
  2763. int _do_warning=0;
  2764. int _state=0;
  2765. /*IF*/if (rT3is_letter((C)->_cc)) {
  2766. rT67make((T67*)rT49tmp_name(),(C)->_line,(C)->_column);
  2767. rT67extend((T67*)rT49tmp_name(),(C)->_cc);
  2768. while (!((_state)>(0))) {
  2769. rT49next_char(C);
  2770. {int iv1=(C)->_cc;
  2771. if ((48 <= iv1) && (iv1<= 57)) goto l202;
  2772. if (95 == iv1) goto l202;
  2773. if ((97 <= iv1) && (iv1<= 122)) goto l202;
  2774. goto l203;
  2775.  l202: ;
  2776. rT67extend((T67*)rT49tmp_name(),(C)->_cc);
  2777. goto l201;
  2778.  l203: ;
  2779. if ((65 <= iv1) && (iv1<= 90)) goto l204;
  2780. goto l205;
  2781.  l204: ;
  2782. _do_warning=1;
  2783. rT67extend((T67*)rT49tmp_name(),rT3to_lower((C)->_cc));
  2784. goto l201;
  2785.  l205: ;
  2786. _state=1;
  2787.  l201: ;
  2788. }
  2789. }
  2790. /*IF*/if (rT67isa_keyword((T67*)rT49tmp_name())) {
  2791. _state=rT67count((T67*)rT49tmp_name());
  2792. while (!((_state)==(0))) {
  2793. _state=(_state)-(1);
  2794. rT49prev_char(C);
  2795. }
  2796. }
  2797. else {
  2798. R=1;
  2799. rT49skip_comments(C);
  2800. /*IF*/if (_do_warning) {
  2801. rT49warning(rT67start_position((T67*)rT49tmp_name()),(T0 *)ms157);
  2802. }
  2803. /*FI*/}
  2804. /*FI*/}
  2805. /*FI*/return R;
  2806. }
  2807. int rT49a_base_class_name(T49 *C){
  2808. int R=0;
  2809. int _do_warning=0;
  2810. int _state=0;
  2811. /*IF*/if (rT3is_letter((C)->_cc)) {
  2812. /*IF*/if (((C)->_cc)>=('a')) {
  2813. _do_warning=1;
  2814. C->_cc=rT3to_upper((C)->_cc);
  2815. }
  2816. /*FI*/rT67make((T67*)rT49tmp_name(),(C)->_line,(C)->_column);
  2817. rT67extend((T67*)rT49tmp_name(),(C)->_cc);
  2818. while (!((_state)>(0))) {
  2819. rT49next_char(C);
  2820. {int iv1=(C)->_cc;
  2821. if ((48 <= iv1) && (iv1<= 57)) goto l207;
  2822. if ((65 <= iv1) && (iv1<= 90)) goto l207;
  2823. if (95 == iv1) goto l207;
  2824. goto l208;
  2825.  l207: ;
  2826. rT67extend((T67*)rT49tmp_name(),(C)->_cc);
  2827. goto l206;
  2828.  l208: ;
  2829. if ((97 <= iv1) && (iv1<= 122)) goto l209;
  2830. goto l210;
  2831.  l209: ;
  2832. _do_warning=1;
  2833. rT67extend((T67*)rT49tmp_name(),rT3to_upper((C)->_cc));
  2834. goto l206;
  2835.  l210: ;
  2836. _state=1;
  2837.  l206: ;
  2838. }
  2839. }
  2840. /*IF*/if (rT67isa_keyword((T67*)rT49tmp_name())) {
  2841. _state=rT67count((T67*)rT49tmp_name());
  2842. while (!((_state)==(0))) {
  2843. _state=(_state)-(1);
  2844. rT49prev_char(C);
  2845. }
  2846. }
  2847. else {
  2848. R=1;
  2849. rT49skip_comments(C);
  2850. /*IF*/if (_do_warning) {
  2851. rT49warning(rT67start_position((T67*)rT49tmp_name()),(T0 *)ms180);
  2852. }
  2853. /*FI*/C->_last_class_name=rT67to_class_name((T67*)rT49tmp_name());
  2854. }
  2855. /*FI*/}
  2856. /*FI*/return R;
  2857. }
  2858. int rT49a_base_type(T49 *C){
  2859. int R=0;
  2860. T0 * _sp=NULL;
  2861. R=1;
  2862. /*IF*/if (rT49a_keyword(C,(T0 *)ms181)) {
  2863. {T85 *n=((T85*)new(85));
  2864. rT85make(n,rT49pos((C)->_start_line,(C)->_start_column));
  2865. C->_last_base_type=(T0 *)n;}}
  2866.  else if (rT49a_keyword(C,(T0 *)ms185)) {
  2867. {T44 *n=((T44*)new(44));
  2868. rT44make(n,(C)->_start_line,(C)->_start_column);
  2869. _sp=(T0 *)n;}
  2870. /*IF*/if (((rT49skip1(C,'\133'))&&(rT49a_type(C)))&&(rT49skip1(C,'\135'))) {
  2871. {T103 *n=((T103*)new(103));
  2872. rT103make(n,_sp,(C)->_last_type);
  2873. C->_last_base_type=(T0 *)n;}}
  2874. else {
  2875. rT49fcp(C,(T0 *)ms211);
  2876. }
  2877. /*FI*/}
  2878.  else if (rT49a_keyword(C,(T0 *)ms187)) {
  2879. {T105 *n=((T105*)new(105));
  2880. rT105make(n,rT49pos((C)->_start_line,(C)->_start_column));
  2881. C->_last_base_type=(T0 *)n;}}
  2882.  else if (rT49a_keyword(C,(T0 *)ms189)) {
  2883. {T107 *n=((T107*)new(107));
  2884. rT107make(n,rT49pos((C)->_start_line,(C)->_start_column));
  2885. C->_last_base_type=(T0 *)n;}}
  2886.  else if (rT49a_keyword(C,(T0 *)ms196)) {
  2887. {T108 *n=((T108*)new(108));
  2888. rT108make(n,rT49pos((C)->_start_line,(C)->_start_column));
  2889. C->_last_base_type=(T0 *)n;}}
  2890.  else if (rT49a_keyword(C,(T0 *)ms192)) {
  2891. {T109 *n=((T109*)new(109));
  2892. rT109make(n,rT49pos((C)->_start_line,(C)->_start_column));
  2893. C->_last_base_type=(T0 *)n;}}
  2894.  else if (rT49a_keyword(C,(T0 *)ms183)) {
  2895. {T110 *n=((T110*)new(110));
  2896. rT110make(n,rT49pos((C)->_start_line,(C)->_start_column));
  2897. C->_last_base_type=(T0 *)n;}}
  2898.  else if (rT49a_keyword(C,(T0 *)ms184)) {
  2899. {T111 *n=((T111*)new(111));
  2900. rT111make(n,rT49pos((C)->_start_line,(C)->_start_column));
  2901. C->_last_base_type=(T0 *)n;}}
  2902.  else if (rT49a_keyword(C,(T0 *)ms194)) {
  2903. {T112 *n=((T112*)new(112));
  2904. rT112make(n,rT49pos((C)->_start_line,(C)->_start_column));
  2905. C->_last_base_type=(T0 *)n;}}
  2906.  else if (rT49a_keyword(C,(T0 *)ms186)) {
  2907. {T113 *n=((T113*)new(113));
  2908. rT113make(n,rT49pos((C)->_start_line,(C)->_start_column));
  2909. C->_last_base_type=(T0 *)n;}}
  2910. else {
  2911. R=0;
  2912. }
  2913. /*FI*/return R;
  2914. }
  2915. void rT49a_ascii_code(T49 *C){
  2916. int _counter=0;
  2917. rT49next_char(C);
  2918. _counter=0;
  2919. C->_last_ascii_code=0;
  2920. while (!(((_counter)>(3))||(((C)->_cc)==('\57')))) {
  2921. {int iv1=(C)->_cc;
  2922. if ((48 <= iv1) && (iv1<= 57)) goto l212;
  2923. goto l213;
  2924.  l212: ;
  2925. C->_last_ascii_code=(((C)->_last_ascii_code)*(10))+(rT3value((C)->_cc));
  2926. goto l211;
  2927.  l213: ;
  2928. rT49fcp(C,(T0 *)ms161);
  2929.  l211: ;
  2930. }
  2931. _counter=(_counter)+(1);
  2932. rT49next_char(C);
  2933. }
  2934. /*IF*/if ((_counter)==(0)) {
  2935. rT49fcp(C,(T0 *)ms162);
  2936. }
  2937.  else if ((_counter)>(3)) {
  2938. rT49fcp(C,(T0 *)ms163);
  2939. }
  2940. else {
  2941. }
  2942. /*FI*/}
  2943. int rT49a_actual(T49 *C){
  2944. int R=0;
  2945. /*IF*/if (rT49skip1(C,'\44')) {
  2946. /*IF*/if (rT49a_identifier(C)) {
  2947. {T171 *n=((T171*)new(171));
  2948. /*(IRF3*/((n)->_feature_name)=(rT67to_feature_name((T67*)rT49tmp_name()));
  2949. /*)*/C->_last_expression=(T0 *)n;}R=1;
  2950. }
  2951. else {
  2952. rT49fcp(C,(T0 *)ms238);
  2953. }
  2954. /*FI*/}
  2955.  else if (rT49a_expression(C)) {
  2956. R=1;
  2957. }
  2958. /*FI*/return R;
  2959. }
  2960. T0 * rT49a_actuals(T49 *C){
  2961. T0 * R=NULL;
  2962. T0* _args=NULL;
  2963. /*IF*/if (rT49skip1(C,'\50')) {
  2964. while (!(!(rT49a_actual(C)))) {
  2965. /*IF*/if (!(_args)) {
  2966. _args=ma(79,0,1,(C)->_last_expression);
  2967. }
  2968. else {
  2969. XrT79add_last(_args,(C)->_last_expression);
  2970. }
  2971. /*FI*/C->_ok=rT49skip1(C,'\54');
  2972. }
  2973. /*IF*/if (!(_args)) {
  2974. rT49wcp(C,(T0 *)ms295);
  2975. }
  2976. else {
  2977. {T168 *n=((T168*)new(168));
  2978. /*(IRF3*/((n)->_list)=(_args);
  2979. /*)*/R=(T0 *)n;}
  2980. }
  2981. /*FI*//*IF*/if (!(rT49skip1(C,'\51'))) {
  2982. rT49fcp(C,(T0 *)ms296);
  2983. }
  2984. /*FI*/}
  2985. /*FI*/return R;
  2986. }
  2987. T0 * rT49a_clients(T49 *C){
  2988. T0 * R=NULL;
  2989. int _state=0;
  2990. T0* _list=NULL;
  2991. T0 * _sp=NULL;
  2992. /*IF*/if (rT49skip1(C,'\173')) {
  2993. {T44 *n=((T44*)new(44));
  2994. rT44make(n,(C)->_start_line,(C)->_start_column);
  2995. _sp=(T0 *)n;}
  2996. while (!((_state)>(3))) {
  2997. {int iv1=_state;
  2998. if (0 == iv1) goto l215;
  2999. goto l216;
  3000.  l215: ;
  3001. /*IF*/if (rT49a_base_class_name(C)) {
  3002. _list=ma(123,0,1,(C)->_last_class_name);
  3003. _state=2;
  3004. }
  3005.  else if (rT49skip1(C,'\175')) {
  3006. _state=4;
  3007. }
  3008.  else if (((C)->_cc)==('\54')) {
  3009. rT49wcp(C,(T0 *)ms232);
  3010. C->_ok=rT49skip1(C,'\54');
  3011. }
  3012. else {
  3013. _state=3;
  3014. }
  3015. /*FI*/goto l214;
  3016.  l216: ;
  3017. if (1 == iv1) goto l217;
  3018. goto l218;
  3019.  l217: ;
  3020. /*IF*/if (rT49a_base_class_name(C)) {
  3021. rT123add_last((T123*)_list,(C)->_last_class_name);
  3022. _state=2;
  3023. }
  3024.  else if (((C)->_cc)==('\54')) {
  3025. rT49wcp(C,(T0 *)ms232);
  3026. C->_ok=rT49skip1(C,'\54');
  3027. }
  3028.  else if (((C)->_cc)==('\175')) {
  3029. rT49wcp(C,(T0 *)ms233);
  3030. C->_ok=rT49skip1(C,'\175');
  3031. _state=4;
  3032. }
  3033. else {
  3034. _state=3;
  3035. }
  3036. /*FI*/goto l214;
  3037.  l218: ;
  3038. if (2 == iv1) goto l219;
  3039. goto l220;
  3040.  l219: ;
  3041. /*IF*/if (rT49skip1(C,'\54')) {
  3042. _state=1;
  3043. }
  3044.  else if (rT49skip1(C,'\175')) {
  3045. _state=4;
  3046. }
  3047.  else if (rT49a_base_class_name(C)) {
  3048. rT49warning(((T46*)(C)->_last_class_name)->_start_position,(T0 *)ms215);
  3049. rT123add_last((T123*)_list,(C)->_last_class_name);
  3050. }
  3051. else {
  3052. _state=3;
  3053. }
  3054. /*FI*/goto l214;
  3055.  l220: ;
  3056. rT49fcp(C,(T0 *)ms234);
  3057. _state=4;
  3058.  l214: ;
  3059. }
  3060. }
  3061. {T121 *n=((T121*)new(121));
  3062. rT121make(n,_sp,_list);
  3063. R=(T0 *)n;}
  3064. }
  3065. else {
  3066. {T121 *n=((T121*)new(121));
  3067. /*(IRF3*//*)*/R=(T0 *)n;}
  3068. }
  3069. /*FI*/return R;
  3070. }
  3071. void rT49go_back(T49 *C,T0 * a1){
  3072. rT49go_back_at(C,((T44*)a1)->_line,((T44*)a1)->_column);
  3073. }
  3074. int rT49a_real_constant(T49 *C){
  3075. int R=0;
  3076. int _old_column=0;
  3077. int _old_line=0;
  3078. _old_line=(C)->_line;
  3079. _old_column=(C)->_column;
  3080. /*IF*/if (rT49skip1(C,'\53')) {
  3081. /*IF*/if (rT49a_real(C)) {
  3082. R=1;
  3083. }
  3084. else {
  3085. rT49go_back_at(C,_old_line,_old_column);
  3086. }
  3087. /*FI*/}
  3088.  else if (rT49skip1(C,'\55')) {
  3089. /*IF*/if (rT49a_real(C)) {
  3090. C->_last_real_constant=rT77_px45((T77*)(C)->_last_real_constant);
  3091. R=1;
  3092. }
  3093. else {
  3094. rT49go_back_at(C,_old_line,_old_column);
  3095. }
  3096. /*FI*/}
  3097.  else if (rT49a_real(C)) {
  3098. R=1;
  3099. }
  3100. /*FI*/return R;
  3101. }
  3102. int rT49a_real(T49 *C){
  3103. int R=0;
  3104. float _frac_i=0;
  3105. float _frac_part=0;
  3106. int _integral_part=0;
  3107. int _back_count=0;
  3108. int _exponent_sign=0;
  3109. int _exponent=0;
  3110. int _state=0;
  3111. T0* _ts=NULL;
  3112. T0 * _sp=NULL;
  3113. /*IF*/if ((rT3is_digit((C)->_cc))||(((C)->_cc)==('\56'))) {
  3114. {T44 *n=((T44*)new(44));
  3115. rT44make(n,(C)->_line,(C)->_column);
  3116. _sp=(T0 *)n;}
  3117. _exponent_sign=1;
  3118. _frac_i=((float)1.);
  3119. /*IF*/if (((C)->_cc)==('\56')) {
  3120. _state=5;
  3121. }
  3122. else {
  3123. _integral_part=rT3value((C)->_cc);
  3124. }
  3125. /*FI*/while (!((_state)>(11))) {
  3126. rT49next_char(C);
  3127. _back_count=(_back_count)+(1);
  3128. {int iv1=_state;
  3129. if (0 == iv1) goto l222;
  3130. goto l223;
  3131.  l222: ;
  3132. {int iv2=(C)->_cc;
  3133. if ((48 <= iv2) && (iv2<= 57)) goto l225;
  3134. goto l226;
  3135.  l225: ;
  3136. _integral_part=((_integral_part)*(10))+(rT3value((C)->_cc));
  3137. goto l224;
  3138.  l226: ;
  3139. if (46 == iv2) goto l227;
  3140. goto l228;
  3141.  l227: ;
  3142. _state=4;
  3143. goto l224;
  3144.  l228: ;
  3145. _state=13;
  3146.  l224: ;
  3147. }
  3148. goto l221;
  3149.  l223: ;
  3150. if (1 == iv1) goto l229;
  3151. goto l230;
  3152.  l229: ;
  3153. {int iv2=(C)->_cc;
  3154. if ((48 <= iv2) && (iv2<= 57)) goto l232;
  3155. goto l233;
  3156.  l232: ;
  3157. _integral_part=((_integral_part)*(10))+(rT3value((C)->_cc));
  3158. _state=2;
  3159. goto l231;
  3160.  l233: ;
  3161. rT49fcp(C,(T0 *)ms169);
  3162.  l231: ;
  3163. }
  3164. goto l221;
  3165.  l230: ;
  3166. if (2 == iv1) goto l234;
  3167. goto l235;
  3168.  l234: ;
  3169. {int iv2=(C)->_cc;
  3170. if ((48 <= iv2) && (iv2<= 57)) goto l237;
  3171. goto l238;
  3172.  l237: ;
  3173. _integral_part=((_integral_part)*(10))+(rT3value((C)->_cc));
  3174. _state=3;
  3175. goto l236;
  3176.  l238: ;
  3177. rT49fcp(C,(T0 *)ms169);
  3178.  l236: ;
  3179. }
  3180. goto l221;
  3181.  l235: ;
  3182. if (3 == iv1) goto l239;
  3183. goto l240;
  3184.  l239: ;
  3185. {int iv2=(C)->_cc;
  3186. if ((48 <= iv2) && (iv2<= 57)) goto l242;
  3187. goto l243;
  3188.  l242: ;
  3189. _integral_part=((_integral_part)*(10))+(rT3value((C)->_cc));
  3190. _state=0;
  3191. goto l241;
  3192.  l243: ;
  3193. rT49fcp(C,(T0 *)ms169);
  3194.  l241: ;
  3195. }
  3196. goto l221;
  3197.  l240: ;
  3198. if (4 == iv1) goto l244;
  3199. goto l245;
  3200.  l244: ;
  3201. {int iv2=(C)->_cc;
  3202. if ((48 <= iv2) && (iv2<= 57)) goto l247;
  3203. goto l248;
  3204.  l247: ;
  3205. _frac_i=((float)10.);
  3206. _frac_part=(rT2to_real(rT3value((C)->_cc)))/(_frac_i);
  3207. _state=6;
  3208. goto l246;
  3209.  l248: ;
  3210. if (69 == iv2) goto l249;
  3211. if (101 == iv2) goto l249;
  3212. goto l250;
  3213.  l249: ;
  3214. _state=10;
  3215. goto l246;
  3216.  l250: ;
  3217. _state=12;
  3218.  l246: ;
  3219. }
  3220. goto l221;
  3221.  l245: ;
  3222. if (5 == iv1) goto l251;
  3223. goto l252;
  3224.  l251: ;
  3225. {int iv2=(C)->_cc;
  3226. if ((48 <= iv2) && (iv2<= 57)) goto l254;
  3227. goto l255;
  3228.  l254: ;
  3229. _frac_i=((float)10.);
  3230. _frac_part=(rT2to_real(rT3value((C)->_cc)))/(_frac_i);
  3231. _state=6;
  3232. goto l253;
  3233.  l255: ;
  3234. _state=13;
  3235.  l253: ;
  3236. }
  3237. goto l221;
  3238.  l252: ;
  3239. if (6 == iv1) goto l256;
  3240. goto l257;
  3241.  l256: ;
  3242. {int iv2=(C)->_cc;
  3243. if ((48 <= iv2) && (iv2<= 57)) goto l259;
  3244. goto l260;
  3245.  l259: ;
  3246. _frac_i=(_frac_i)*(((float)10.));
  3247. _frac_part=(_frac_part)+((rT2to_real(rT3value((C)->_cc)))/(_frac_i));
  3248. goto l258;
  3249.  l260: ;
  3250. if (69 == iv2) goto l261;
  3251. if (101 == iv2) goto l261;
  3252. goto l262;
  3253.  l261: ;
  3254. _state=10;
  3255. goto l258;
  3256.  l262: ;
  3257. if (95 == iv2) goto l263;
  3258. goto l264;
  3259.  l263: ;
  3260. _state=7;
  3261. goto l258;
  3262.  l264: ;
  3263. _state=12;
  3264.  l258: ;
  3265. }
  3266. goto l221;
  3267.  l257: ;
  3268. if (7 == iv1) goto l265;
  3269. goto l266;
  3270.  l265: ;
  3271. {int iv2=(C)->_cc;
  3272. if ((48 <= iv2) && (iv2<= 57)) goto l268;
  3273. goto l269;
  3274.  l268: ;
  3275. _frac_i=(_frac_i)*(((float)10.));
  3276. _frac_part=(_frac_part)+((rT2to_real(rT3value((C)->_cc)))/(_frac_i));
  3277. _state=8;
  3278. goto l267;
  3279.  l269: ;
  3280. rT49fcp(C,(T0 *)ms170);
  3281.  l267: ;
  3282. }
  3283. goto l221;
  3284.  l266: ;
  3285. if (8 == iv1) goto l270;
  3286. goto l271;
  3287.  l270: ;
  3288. {int iv2=(C)->_cc;
  3289. if ((48 <= iv2) && (iv2<= 57)) goto l273;
  3290. goto l274;
  3291.  l273: ;
  3292. _frac_i=(_frac_i)*(((float)10.));
  3293. _frac_part=(_frac_part)+((rT2to_real(rT3value((C)->_cc)))/(_frac_i));
  3294. _state=9;
  3295. goto l272;
  3296.  l274: ;
  3297. rT49fcp(C,(T0 *)ms170);
  3298.  l272: ;
  3299. }
  3300. goto l221;
  3301.  l271: ;
  3302. if (9 == iv1) goto l275;
  3303. goto l276;
  3304.  l275: ;
  3305. {int iv2=(C)->_cc;
  3306. if ((48 <= iv2) && (iv2<= 57)) goto l278;
  3307. goto l279;
  3308.  l278: ;
  3309. _frac_i=(_frac_i)*(((float)10.));
  3310. _frac_part=(_frac_part)+((rT2to_real(rT3value((C)->_cc)))/(_frac_i));
  3311. _state=6;
  3312. goto l277;
  3313.  l279: ;
  3314. rT49fcp(C,(T0 *)ms170);
  3315.  l277: ;
  3316. }
  3317. goto l221;
  3318.  l276: ;
  3319. if (10 == iv1) goto l280;
  3320. goto l281;
  3321.  l280: ;
  3322. {int iv2=(C)->_cc;
  3323. if (43 == iv2) goto l283;
  3324. goto l284;
  3325.  l283: ;
  3326. _state=11;
  3327. goto l282;
  3328.  l284: ;
  3329. if (45 == iv2) goto l285;
  3330. goto l286;
  3331.  l285: ;
  3332. _exponent_sign=-(1);
  3333. _state=11;
  3334. goto l282;
  3335.  l286: ;
  3336. if ((48 <= iv2) && (iv2<= 57)) goto l287;
  3337. goto l288;
  3338.  l287: ;
  3339. _exponent=rT3value((C)->_cc);
  3340. _state=11;
  3341. goto l282;
  3342.  l288: ;
  3343. rT49fcp(C,(T0 *)ms171);
  3344. _state=13;
  3345.  l282: ;
  3346. }
  3347. goto l221;
  3348.  l281: ;
  3349. {int iv2=(C)->_cc;
  3350. if ((48 <= iv2) && (iv2<= 57)) goto l290;
  3351. goto l291;
  3352.  l290: ;
  3353. _exponent=((_exponent)*(10))+(rT3value((C)->_cc));
  3354. goto l289;
  3355.  l291: ;
  3356. _state=12;
  3357.  l289: ;
  3358. }
  3359.  l221: ;
  3360. }
  3361. }
  3362. /*IF*/if ((_state)==(12)) {
  3363. _ts=rT7substring((T7*)(C)->_current_line,((T44*)_sp)->_column,((C)->_column)-(1));
  3364. {T77 *n=((T77*)new(77));
  3365. rT77make(n,_sp,_ts,_integral_part,_frac_part,(_exponent)*(_exponent_sign));
  3366. C->_last_real_constant=(T0 *)n;}
  3367. R=1;
  3368. rT49skip_comments(C);
  3369. }
  3370. else {
  3371. while (!((_back_count)==(0))) {
  3372. _back_count=(_back_count)-(1);
  3373. rT49prev_char(C);
  3374. }
  3375. }
  3376. /*FI*/}
  3377. /*FI*/return R;
  3378. }
  3379. void rT49go_back_at(T49 *C,int a1,int a2){
  3380. C->_line=a1;
  3381. C->_column=a2;
  3382. C->_current_line=(/*UT*/(T58*)oRBC49text,
  3383. rT58item((C)->_line));
  3384. /*IF*/if (((C)->_column)==((((T7*)(C)->_current_line)->_count)+(1))) {
  3385. C->_cc='\12';
  3386. }
  3387.  else if (((C)->_column)==(0)) {
  3388. C->_cc='\0';
  3389. }
  3390. else {
  3391. C->_cc=rT7item((T7*)(C)->_current_line,(C)->_column);
  3392. }
  3393. /*FI*/}
  3394. int rT49a_binary(T49 *C,T0 * a1){
  3395. int R=0;
  3396. R=1;
  3397. /*IF*/if (rT49skip2(C,'\74','\75')) {
  3398. {T68 *n=((T68*)new(68));
  3399. rT68make(n,(T0 *)ms90,a1);
  3400. C->_last_binary=(T0 *)n;}
  3401. }
  3402.  else if (rT49skip2(C,'\76','\75')) {
  3403. {T68 *n=((T68*)new(68));
  3404. rT68make(n,(T0 *)ms91,a1);
  3405. C->_last_binary=(T0 *)n;}
  3406. }
  3407.  else if (rT49skip2(C,'\57','\57')) {
  3408. {T68 *n=((T68*)new(68));
  3409. rT68make(n,(T0 *)ms92,a1);
  3410. C->_last_binary=(T0 *)n;}
  3411. }
  3412.  else if (rT49skip2(C,'\134','\134')) {
  3413. {T68 *n=((T68*)new(68));
  3414. rT68make(n,(T0 *)ms93,a1);
  3415. C->_last_binary=(T0 *)n;}
  3416. }
  3417.  else if (rT49skip1(C,'\53')) {
  3418. {T68 *n=((T68*)new(68));
  3419. rT68make(n,(T0 *)ms84,a1);
  3420. C->_last_binary=(T0 *)n;}
  3421. }
  3422.  else if (rT49skip1(C,'\55')) {
  3423. {T68 *n=((T68*)new(68));
  3424. rT68make(n,(T0 *)ms85,a1);
  3425. C->_last_binary=(T0 *)n;}
  3426. }
  3427.  else if (rT49skip1(C,'\52')) {
  3428. {T68 *n=((T68*)new(68));
  3429. rT68make(n,(T0 *)ms94,a1);
  3430. C->_last_binary=(T0 *)n;}
  3431. }
  3432.  else if (rT49skip1(C,'\57')) {
  3433. {T68 *n=((T68*)new(68));
  3434. rT68make(n,(T0 *)ms95,a1);
  3435. C->_last_binary=(T0 *)n;}
  3436. }
  3437.  else if (rT49skip1(C,'\76')) {
  3438. {T68 *n=((T68*)new(68));
  3439. rT68make(n,(T0 *)ms96,a1);
  3440. C->_last_binary=(T0 *)n;}
  3441. }
  3442.  else if (rT49skip1(C,'\74')) {
  3443. {T68 *n=((T68*)new(68));
  3444. rT68make(n,(T0 *)ms97,a1);
  3445. C->_last_binary=(T0 *)n;}
  3446. }
  3447.  else if (rT49skip1(C,'\136')) {
  3448. {T68 *n=((T68*)new(68));
  3449. rT68make(n,(T0 *)ms98,a1);
  3450. C->_last_binary=(T0 *)n;}
  3451. }
  3452.  else if (rT49a_keyword(C,(T0 *)ms99)) {
  3453. {T68 *n=((T68*)new(68));
  3454. rT68make(n,(T0 *)ms99,a1);
  3455. C->_last_binary=(T0 *)n;}
  3456. }
  3457.  else if (rT49a_keyword(C,(T0 *)ms100)) {
  3458. {T68 *n=((T68*)new(68));
  3459. rT68make(n,(T0 *)ms100,a1);
  3460. C->_last_binary=(T0 *)n;}
  3461. }
  3462.  else if (rT49a_keyword(C,(T0 *)ms101)) {
  3463. /*IF*/if (rT49a_keyword(C,(T0 *)ms102)) {
  3464. {T68 *n=((T68*)new(68));
  3465. rT68make(n,(T0 *)ms103,a1);
  3466. C->_last_binary=(T0 *)n;}
  3467. }
  3468. else {
  3469. {T68 *n=((T68*)new(68));
  3470. rT68make(n,(T0 *)ms101,a1);
  3471. C->_last_binary=(T0 *)n;}
  3472. }
  3473. /*FI*/}
  3474.  else if (rT49a_keyword(C,(T0 *)ms104)) {
  3475. /*IF*/if (rT49a_keyword(C,(T0 *)ms105)) {
  3476. {T68 *n=((T68*)new(68));
  3477. rT68make(n,(T0 *)ms106,a1);
  3478. C->_last_binary=(T0 *)n;}
  3479. }
  3480. else {
  3481. {T68 *n=((T68*)new(68));
  3482. rT68make(n,(T0 *)ms104,a1);
  3483. C->_last_binary=(T0 *)n;}
  3484. }
  3485. /*FI*/}
  3486. else {
  3487. C->_last_binary=NULL;
  3488. R=0;
  3489. }
  3490. /*FI*/return R;
  3491. }
  3492. int rT49a_creation(T49 *C){
  3493. int R=0;
  3494. int _state=0;
  3495. T0 * _call=NULL;
  3496. T0 * _proc_name=NULL;
  3497. T0 * _writable=NULL;
  3498. T0 * _type=NULL;
  3499. T0 * _sp=NULL;
  3500. while (!((_state)>(6))) {
  3501. {int iv1=_state;
  3502. if (0 == iv1) goto l293;
  3503. goto l294;
  3504.  l293: ;
  3505. /*IF*/if (rT49skip1(C,'\41')) {
  3506. {T44 *n=((T44*)new(44));
  3507. rT44make(n,(C)->_start_line,(C)->_start_column);
  3508. _sp=(T0 *)n;}
  3509. _state=1;
  3510. }
  3511. else {
  3512. _state=7;
  3513. }
  3514. /*FI*/goto l292;
  3515.  l294: ;
  3516. if (1 == iv1) goto l295;
  3517. goto l296;
  3518.  l295: ;
  3519. /*IF*/if (rT49a_type(C)) {
  3520. _type=(C)->_last_type;
  3521. /*IF*/if (XrT56is_anchored(_type)) {
  3522. rT49warning(XrT56start_position(_type),(T0 *)ms381);
  3523. }
  3524. /*FI*/_state=2;
  3525. }
  3526.  else if (rT49skip1(C,'\41')) {
  3527. _state=3;
  3528. }
  3529. else {
  3530. rT49fcp(C,(T0 *)ms382);
  3531. _state=8;
  3532. }
  3533. /*FI*/goto l292;
  3534.  l296: ;
  3535. if (2 == iv1) goto l297;
  3536. goto l298;
  3537.  l297: ;
  3538. /*IF*/if (rT49skip1(C,'\41')) {
  3539. _state=3;
  3540. }
  3541. else {
  3542. _state=8;
  3543. rT49fcp(C,(T0 *)ms383);
  3544. }
  3545. /*FI*/goto l292;
  3546.  l298: ;
  3547. if (3 == iv1) goto l299;
  3548. goto l300;
  3549.  l299: ;
  3550. /*IF*/if (rT49a_identifier(C)) {
  3551. /*IF*/if (rT49a_current(C)) {
  3552. _state=8;
  3553. rT49error(XrT66start_position((C)->_last_expression),(T0 *)ms384);
  3554. }
  3555.  else if (rT49a_argument(C)) {
  3556. _state=8;
  3557. rT49error(XrT66start_position((C)->_last_expression),(T0 *)ms385);
  3558. }
  3559.  else if ((rT49a_result(C))||(rT49a_local_variable(C))) {
  3560. _writable=(C)->_last_expression;
  3561. _state=4;
  3562. }
  3563. else {
  3564. _writable=rT67to_feature_name((T67*)rT49tmp_name());
  3565. _state=4;
  3566. }
  3567. /*FI*/}
  3568. else {
  3569. _state=8;
  3570. rT49fcp(C,(T0 *)ms386);
  3571. }
  3572. /*FI*/goto l292;
  3573.  l300: ;
  3574. if (4 == iv1) goto l301;
  3575. goto l302;
  3576.  l301: ;
  3577. /*IF*/if (rT49skip1unless2(C,'\56','\56')) {
  3578. _state=5;
  3579. }
  3580. else {
  3581. _state=7;
  3582. }
  3583. /*FI*/goto l292;
  3584.  l302: ;
  3585. if (5 == iv1) goto l303;
  3586. goto l304;
  3587.  l303: ;
  3588. /*IF*/if (rT49a_identifier(C)) {
  3589. _proc_name=rT67to_feature_name((T67*)rT49tmp_name());
  3590. _state=6;
  3591. }
  3592. else {
  3593. _state=8;
  3594. rT49fcp(C,(T0 *)ms387);
  3595. }
  3596. /*FI*/goto l292;
  3597.  l304: ;
  3598. /*IF*/if (((C)->_cc)==('\50')) {
  3599. _call=rT49to_proc_call(C,_writable,_proc_name,rT49a_actuals(C));
  3600. }
  3601. else {
  3602. {T176 *n=((T176*)new(176));
  3603. rT176make(n,_writable,_proc_name);
  3604. _call=(T0 *)n;}}
  3605. /*FI*/_state=7;
  3606.  l292: ;
  3607. }
  3608. }
  3609. /*IF*/if (((_state)==(7))&&(((int)_sp))) {
  3610. R=1;
  3611. /*IF*/if ((!(_type))&&(!(_call))) {
  3612. {T238 *n=((T238*)new(238));
  3613. rT238make(n,_sp,_writable);
  3614. C->_last_instruction=(T0 *)n;}}
  3615.  else if ((((int)_type))&&(!(_call))) {
  3616. {T241 *n=((T241*)new(241));
  3617. rT241make(n,_sp,_type,_writable);
  3618. C->_last_instruction=(T0 *)n;}}
  3619.  else if ((!(_type))&&(((int)_call))) {
  3620. {T243 *n=((T243*)new(243));
  3621. rT243make(n,_sp,_writable,_call);
  3622. C->_last_instruction=(T0 *)n;}}
  3623. else {
  3624. {T245 *n=((T245*)new(245));
  3625. rT245make(n,_sp,_type,_writable,_call);
  3626. C->_last_instruction=(T0 *)n;}}
  3627. /*FI*/}
  3628. /*FI*/return R;
  3629. }
  3630. void rT49a_creation_clause(T49 *C){
  3631. T0 * _creation_clause=NULL;
  3632. T0* _list=NULL;
  3633. T0 * _comments=NULL;
  3634. T0 * _clients=NULL;
  3635. _clients=rT49a_clients(C);
  3636. _comments=rT49get_comments(C);
  3637. /*IF*/if (rT49a_feature_list(C)) {
  3638. _list=(C)->_last_feature_list;
  3639. {T130 *n=((T130*)new(130));
  3640. rT130make(n,_clients,_comments,_list);
  3641. _creation_clause=(T0 *)n;}
  3642. rT48add_creation_clause((T48*)(C)->_last_base_class,_creation_clause);
  3643. }
  3644. else {
  3645. /*IF*/if ((((int)_comments))||(((int)_clients))) {
  3646. /*IF*/if (((int)_comments)) {
  3647. /*UT*/(T43*)oRBC27eh;
  3648. rT43add_position(((T57*)_comments)->_start_position);
  3649. }
  3650. /*FI*//*IF*/if (((int)_clients)) {
  3651. /*UT*/(T43*)oRBC27eh;
  3652. rT43add_position(((T121*)_clients)->_start_position);
  3653. }
  3654. /*FI*/rT43warning((T43*)oRBC27eh,(T0 *)ms250);
  3655. }
  3656. /*FI*/}
  3657. /*FI*/}
  3658. int rT49a_argument(T49 *C){
  3659. int R=0;
  3660. int _rank=0;
  3661. /*IF*/if (((int)(C)->_arguments)) {
  3662. _rank=rT90rank_of((T90*)(C)->_arguments,rT49tmp_name());
  3663. /*IF*/if ((_rank)>(0)) {
  3664. C->_last_expression=rT67to_argument_name((T67*)rT49tmp_name(),(C)->_arguments,_rank);
  3665. R=1;
  3666. }
  3667. /*FI*/}
  3668. /*FI*/return R;
  3669. }
  3670. void rT49a_after_a_dot(T49 *C,int a1,T0 * a2){
  3671. T0 * _eal=NULL;
  3672. T0 * _fn=NULL;
  3673. /*IF*/if (rT49a_identifier(C)) {
  3674. /*IF*/if (((rT49a_result(C))||(rT49a_void(C)))||(rT49a_current(C))) {
  3675. /*UT*/(T43*)oRBC27eh;
  3676. rT43add_position(XrT66start_position((C)->_last_expression));
  3677. rT43error((T43*)oRBC27eh,(T0 *)ms294);
  3678. }
  3679. /*FI*/_fn=rT67to_feature_name((T67*)rT49tmp_name());
  3680. _eal=rT49a_actuals(C);
  3681. rT49a_r10(C,a1,a2,_fn,_eal);
  3682. }
  3683. else {
  3684. rT49fcp(C,(T0 *)ms297);
  3685. }
  3686. /*FI*/}
  3687. void rT49a_redefine_list(T49 *C){
  3688. /*IF*/if (rT49a_feature_list(C)) {
  3689. rT116set_redefine((T116*)(C)->_last_parent,(C)->_last_feature_list);
  3690. }
  3691. /*FI*/}
  3692. int rT49a_index_clause(T49 *C){
  3693. int R=0;
  3694. T0 * _index_clause=NULL;
  3695. /*IF*/if (rT49a_feature_name(C)) {
  3696. R=1;
  3697. /*IF*/if (rT49skip1(C,'\72')) {
  3698. {T63 *n=((T63*)new(63));
  3699. /*(IRF3*/((n)->_index)=(XrT65to_string((C)->_last_feature_name));
  3700. /*)*/_index_clause=(T0 *)n;}
  3701. /*IF*/if (rT49a_index_value(C)) {
  3702. rT63add_index_value((T63*)_index_clause,(C)->_last_index_value);
  3703. }
  3704. else {
  3705. rT49fcp(C,(T0 *)ms174);
  3706. }
  3707. /*FI*/}
  3708. else {
  3709. {T63 *n=((T63*)new(63));
  3710. /*(IRF3*/((n)->_index)=(NULL);
  3711. /*)*/_index_clause=(T0 *)n;}
  3712. rT63add_index_value((T63*)_index_clause,(C)->_last_feature_name);
  3713. }
  3714. /*FI*/}
  3715.  else if (rT49a_manifest_constant(C)) {
  3716. R=1;
  3717. {T63 *n=((T63*)new(63));
  3718. /*(IRF3*/((n)->_index)=(NULL);
  3719. /*)*/_index_clause=(T0 *)n;}
  3720. rT63add_index_value((T63*)_index_clause,(C)->_last_manifest_constant);
  3721. }
  3722. /*FI*//*IF*/if (R) {
  3723. while (!(!(rT49skip1(C,'\54')))) {
  3724. /*IF*/if (rT49a_index_value(C)) {
  3725. rT63add_index_value((T63*)_index_clause,(C)->_last_index_value);
  3726. }
  3727. else {
  3728. rT49fcp(C,(T0 *)ms174);
  3729. }
  3730. /*FI*/}
  3731. rT48add_index_clause((T48*)(C)->_last_base_class,_index_clause);
  3732. }
  3733. /*FI*/return R;
  3734. }
  3735. void rT49a_index_list(T49 *C){
  3736. while (!(!(rT49a_index_clause(C)))) {
  3737. C->_ok=rT49skip1(C,'\73');
  3738. }
  3739. }
  3740. void rT49a_indexing(T49 *C){
  3741. /*IF*/if (rT49a_keyword(C,(T0 *)ms78)) {
  3742. rT49a_index_list(C);
  3743. }
  3744. /*FI*/}
  3745. int rT49a_index_value(T49 *C){
  3746. int R=0;
  3747. /*IF*/if (rT49a_feature_name(C)) {
  3748. C->_last_index_value=(C)->_last_feature_name;
  3749. R=1;
  3750. }
  3751.  else if (rT49a_manifest_constant(C)) {
  3752. C->_last_index_value=(C)->_last_manifest_constant;
  3753. R=1;
  3754. }
  3755. /*FI*/return R;
  3756. }
  3757. int rT49a_tag_mark(T49 *C){
  3758. int R=0;
  3759. /*IF*/if (rT49a_identifier(C)) {
  3760. /*IF*/if (rT49skip1unless2(C,'\72','\75')) {
  3761. R=1;
  3762. C->_last_tag_mark=rT67to_tag_name((T67*)rT49tmp_name());
  3763. }
  3764. else {
  3765. C->_last_tag_mark=NULL;
  3766. rT49go_back_at(C,((T67*)rT49tmp_name())->_li,((T67*)rT49tmp_name())->_co);
  3767. }
  3768. /*FI*/}
  3769. else {
  3770. C->_last_tag_mark=NULL;
  3771. }
  3772. /*FI*/return R;
  3773. }
  3774. int rT49a_manifest_constant(T49 *C){
  3775. int R=0;
  3776. /*IF*/if (rT49a_boolean_constant(C)) {
  3777. C->_last_manifest_constant=(C)->_last_boolean_constant;
  3778. R=1;
  3779. }
  3780.  else if (rT49a_character_constant(C)) {
  3781. C->_last_manifest_constant=(C)->_last_character_constant;
  3782. R=1;
  3783. }
  3784.  else if (rT49a_manifest_string(C)) {
  3785. C->_last_manifest_constant=(C)->_last_manifest_string;
  3786. R=1;
  3787. }
  3788.  else if (rT49a_bit_constant(C)) {
  3789. C->_last_manifest_constant=(C)->_last_bit_constant;
  3790. R=1;
  3791. }
  3792.  else if (rT49a_real_constant(C)) {
  3793. C->_last_manifest_constant=(C)->_last_real_constant;
  3794. R=1;
  3795. }
  3796.  else if (rT49a_integer_constant(C)) {
  3797. C->_last_manifest_constant=(C)->_last_integer_constant;
  3798. R=1;
  3799. }
  3800. /*FI*/return R;
  3801. }
  3802. int rT49a_manifest_string(T49 *C){
  3803. int R=0;
  3804. int _state=0;
  3805. /*IF*/if (((C)->_cc)==('\42')) {
  3806. R=1;
  3807. {T74 *n=((T74*)new(74));
  3808. rT74make(n,rT49pos((C)->_line,(C)->_column));
  3809. C->_last_manifest_string=(T0 *)n;}
  3810. while (!((_state)>(3))) {
  3811. rT49next_char(C);
  3812. {int iv1=_state;
  3813. if (0 == iv1) goto l306;
  3814. goto l307;
  3815.  l306: ;
  3816. {int iv2=(C)->_cc;
  3817. if (10 == iv2) goto l309;
  3818. goto l310;
  3819.  l309: ;
  3820. rT49fcp(C,(T0 *)ms165);
  3821. goto l308;
  3822.  l310: ;
  3823. if (34 == iv2) goto l311;
  3824. goto l312;
  3825.  l311: ;
  3826. _state=4;
  3827. goto l308;
  3828.  l312: ;
  3829. if (37 == iv2) goto l313;
  3830. goto l314;
  3831.  l313: ;
  3832. _state=1;
  3833. goto l308;
  3834.  l314: ;
  3835. rT74add((T74*)(C)->_last_manifest_string,(C)->_cc);
  3836.  l308: ;
  3837. }
  3838. goto l305;
  3839.  l307: ;
  3840. if (1 == iv1) goto l315;
  3841. goto l316;
  3842.  l315: ;
  3843. _state=0;
  3844. {int iv2=(C)->_cc;
  3845. if (10 == iv2) goto l318;
  3846. goto l319;
  3847.  l318: ;
  3848. _state=3;
  3849. goto l317;
  3850.  l319: ;
  3851. if (65 == iv2) goto l320;
  3852. goto l321;
  3853.  l320: ;
  3854. rT74add_percent((T74*)(C)->_last_manifest_string,'\100');
  3855. goto l317;
  3856.  l321: ;
  3857. if (66 == iv2) goto l322;
  3858. goto l323;
  3859.  l322: ;
  3860. rT74add_percent((T74*)(C)->_last_manifest_string,'\10');
  3861. goto l317;
  3862.  l323: ;
  3863. if (67 == iv2) goto l324;
  3864. goto l325;
  3865.  l324: ;
  3866. rT74add_percent((T74*)(C)->_last_manifest_string,'\136');
  3867. goto l317;
  3868.  l325: ;
  3869. if (68 == iv2) goto l326;
  3870. goto l327;
  3871.  l326: ;
  3872. rT74add_percent((T74*)(C)->_last_manifest_string,'\44');
  3873. goto l317;
  3874.  l327: ;
  3875. if (70 == iv2) goto l328;
  3876. goto l329;
  3877.  l328: ;
  3878. rT74add_percent((T74*)(C)->_last_manifest_string,'\14');
  3879. goto l317;
  3880.  l329: ;
  3881. if (72 == iv2) goto l330;
  3882. goto l331;
  3883.  l330: ;
  3884. rT74add_percent((T74*)(C)->_last_manifest_string,'\134');
  3885. goto l317;
  3886.  l331: ;
  3887. if (76 == iv2) goto l332;
  3888. goto l333;
  3889.  l332: ;
  3890. rT74add_percent((T74*)(C)->_last_manifest_string,'\176');
  3891. goto l317;
  3892.  l333: ;
  3893. if (78 == iv2) goto l334;
  3894. goto l335;
  3895.  l334: ;
  3896. rT74add_percent((T74*)(C)->_last_manifest_string,'\12');
  3897. goto l317;
  3898.  l335: ;
  3899. if (81 == iv2) goto l336;
  3900. goto l337;
  3901.  l336: ;
  3902. rT74add_percent((T74*)(C)->_last_manifest_string,'\140');
  3903. goto l317;
  3904.  l337: ;
  3905. if (82 == iv2) goto l338;
  3906. goto l339;
  3907.  l338: ;
  3908. rT74add_percent((T74*)(C)->_last_manifest_string,'\15');
  3909. goto l317;
  3910.  l339: ;
  3911. if (83 == iv2) goto l340;
  3912. goto l341;
  3913.  l340: ;
  3914. rT74add_percent((T74*)(C)->_last_manifest_string,'\43');
  3915. goto l317;
  3916.  l341: ;
  3917. if (84 == iv2) goto l342;
  3918. goto l343;
  3919.  l342: ;
  3920. rT74add_percent((T74*)(C)->_last_manifest_string,'\11');
  3921. goto l317;
  3922.  l343: ;
  3923. if (85 == iv2) goto l344;
  3924. goto l345;
  3925.  l344: ;
  3926. rT74add_percent((T74*)(C)->_last_manifest_string,'\0');
  3927. goto l317;
  3928.  l345: ;
  3929. if (86 == iv2) goto l346;
  3930. goto l347;
  3931.  l346: ;
  3932. rT74add_percent((T74*)(C)->_last_manifest_string,'\174');
  3933. goto l317;
  3934.  l347: ;
  3935. if (37 == iv2) goto l348;
  3936. goto l349;
  3937.  l348: ;
  3938. rT74add_percent((T74*)(C)->_last_manifest_string,'\45');
  3939. goto l317;
  3940.  l349: ;
  3941. if (39 == iv2) goto l350;
  3942. goto l351;
  3943.  l350: ;
  3944. rT74add_percent((T74*)(C)->_last_manifest_string,'\47');
  3945. goto l317;
  3946.  l351: ;
  3947. if (34 == iv2) goto l352;
  3948. goto l353;
  3949.  l352: ;
  3950. rT74add_percent((T74*)(C)->_last_manifest_string,'\42');
  3951. goto l317;
  3952.  l353: ;
  3953. if (40 == iv2) goto l354;
  3954. goto l355;
  3955.  l354: ;
  3956. rT74add_percent((T74*)(C)->_last_manifest_string,'\133');
  3957. goto l317;
  3958.  l355: ;
  3959. if (41 == iv2) goto l356;
  3960. goto l357;
  3961.  l356: ;
  3962. rT74add_percent((T74*)(C)->_last_manifest_string,'\135');
  3963. goto l317;
  3964.  l357: ;
  3965. if (60 == iv2) goto l358;
  3966. goto l359;
  3967.  l358: ;
  3968. rT74add_percent((T74*)(C)->_last_manifest_string,'\173');
  3969. goto l317;
  3970.  l359: ;
  3971. if (62 == iv2) goto l360;
  3972. goto l361;
  3973.  l360: ;
  3974. rT74add_percent((T74*)(C)->_last_manifest_string,'\175');
  3975. goto l317;
  3976.  l361: ;
  3977. if (47 == iv2) goto l362;
  3978. goto l363;
  3979.  l362: ;
  3980. rT49a_ascii_code(C);
  3981. rT74add_ascii((T74*)(C)->_last_manifest_string,(C)->_last_ascii_code);
  3982. goto l317;
  3983.  l363: ;
  3984. if (9 == iv2) goto l364;
  3985. if (32 == iv2) goto l364;
  3986. goto l365;
  3987.  l364: ;
  3988. _state=2;
  3989. goto l317;
  3990.  l365: ;
  3991. rT49fcp(C,(T0 *)ms166);
  3992. _state=0;
  3993.  l317: ;
  3994. }
  3995. goto l305;
  3996.  l316: ;
  3997. if (2 == iv1) goto l366;
  3998. goto l367;
  3999.  l366: ;
  4000. {int iv2=(C)->_cc;
  4001. if (10 == iv2) goto l369;
  4002. goto l370;
  4003.  l369: ;
  4004. _state=3;
  4005. goto l368;
  4006.  l370: ;
  4007. if (9 == iv2) goto l371;
  4008. if (32 == iv2) goto l371;
  4009. goto l372;
  4010.  l371: ;
  4011. goto l368;
  4012.  l372: ;
  4013. rT49fcp(C,(T0 *)ms167);
  4014.  l368: ;
  4015. }
  4016. goto l305;
  4017.  l367: ;
  4018. {int iv2=(C)->_cc;
  4019. if (9 == iv2) goto l374;
  4020. if (32 == iv2) goto l374;
  4021. goto l375;
  4022.  l374: ;
  4023. goto l373;
  4024.  l375: ;
  4025. if (37 == iv2) goto l376;
  4026. goto l377;
  4027.  l376: ;
  4028. rT74break_line((T74*)(C)->_last_manifest_string);
  4029. _state=0;
  4030. goto l373;
  4031.  l377: ;
  4032. if (10 == iv2) goto l378;
  4033. goto l379;
  4034.  l378: ;
  4035. rT49fcp(C,(T0 *)ms165);
  4036. _state=0;
  4037. goto l373;
  4038.  l379: ;
  4039. rT49fcp(C,(T0 *)ms168);
  4040. _state=0;
  4041.  l373: ;
  4042. }
  4043.  l305: ;
  4044. }
  4045. }
  4046. rT49next_char(C);
  4047. rT49skip_comments(C);
  4048. }
  4049. /*FI*/return R;
  4050. }
  4051. int rT49a_infix(T49 *C){
  4052. int R=0;
  4053. T0 * _sp=NULL;
  4054. /*IF*/if (rT49a_keyword(C,(T0 *)ms88)) {
  4055. R=1;
  4056. {T44 *n=((T44*)new(44));
  4057. rT44make(n,(C)->_start_line,(C)->_start_column);
  4058. _sp=(T0 *)n;}
  4059. /*IF*/if (((C)->_cc)==('\42')) {
  4060. rT49next_char(C);
  4061. }
  4062. else {
  4063. rT49wcp(C,(T0 *)ms89);
  4064. }
  4065. /*FI*//*IF*/if (rT49a_binary(C,_sp)) {
  4066. C->_last_infix=(C)->_last_binary;
  4067. }
  4068.  else if (rT49a_free_operator(C)) {
  4069. C->_last_infix=rT67to_infix_name((T67*)rT49tmp_operator(),_sp);
  4070. }
  4071. else {
  4072. rT49fcp(C,(T0 *)ms107);
  4073. }
  4074. /*FI*//*IF*/if (!(rT49skip1(C,'\42'))) {
  4075. rT49wcp(C,(T0 *)ms108);
  4076. }
  4077. /*FI*/}
  4078. /*FI*/return R;
  4079. }
  4080. int rT49a_free_operator(T49 *C){
  4081. int R=0;
  4082. /*IF*/if ((((((C)->_cc)==('\100'))||(((C)->_cc)==('\43')))||(((C)->_cc)==('\174')))||(((C)->_cc)==('\46'))) {
  4083. R=1;
  4084. rT67make((T67*)rT49tmp_operator(),(C)->_line,(C)->_column);
  4085. rT67extend((T67*)rT49tmp_operator(),(C)->_cc);
  4086. rT49next_char(C);
  4087. while (!((((((C)->_cc)==('\12'))||(((C)->_cc)==('\40')))||(((C)->_cc)==('\11')))||(((C)->_cc)==('\42')))) {
  4088. rT67extend((T67*)rT49tmp_operator(),(C)->_cc);
  4089. rT49next_char(C);
  4090. }
  4091. rT49skip_comments(C);
  4092. }
  4093. /*FI*/return R;
  4094. }
  4095. void rT49a_local_var_list(T49 *C,T0 * a1){
  4096. int _state=0;
  4097. int _rank=0;
  4098. T0* _list=NULL;
  4099. T0 * _declaration=NULL;
  4100. T0* _name_list=NULL;
  4101. T0 * _name=NULL;
  4102. while (!((_state)>(4))) {
  4103. {int iv1=_state;
  4104. if (0 == iv1) goto l381;
  4105. goto l382;
  4106.  l381: ;
  4107. /*IF*/if (rT49a_identifier(C)) {
  4108. _name=rT67to_decl_name((T67*)rT49tmp_name());
  4109. _state=1;
  4110. /*IF*/if (((int)(C)->_arguments)) {
  4111. _rank=rT90rank_of((T90*)(C)->_arguments,_name);
  4112. /*IF*/if ((_rank)>(0)) {
  4113. /*UT*/(T43*)oRBC27eh;
  4114. rT43add_position(((T95*)_name)->_start_position);
  4115. /*UT*/(T43*)oRBC27eh;
  4116. rT43add_position(XrT47start_position(rT90name((T90*)(C)->_arguments,_rank)));
  4117. rT43error((T43*)oRBC27eh,(T0 *)ms326);
  4118. }
  4119. /*FI*/}
  4120. /*FI*/}
  4121.  else if ((((C)->_cc)==('\54'))||(((C)->_cc)==('\73'))) {
  4122. rT49wcp(C,(T0 *)ms256);
  4123. C->_ok=(rT49skip1(C,'\54'))||(rT49skip1(C,'\73'));
  4124. }
  4125. else {
  4126. _state=5;
  4127. }
  4128. /*FI*/goto l380;
  4129.  l382: ;
  4130. if (1 == iv1) goto l383;
  4131. goto l384;
  4132.  l383: ;
  4133. /*IF*/if (rT49skip1(C,'\72')) {
  4134. /*IF*/if (((int)_name_list)) {
  4135. rT139add_last((T139*)_name_list,_name);
  4136. _name=NULL;
  4137. }
  4138. /*FI*/_state=3;
  4139. }
  4140. else {
  4141. /*IF*/if (((C)->_cc)==('\73')) {
  4142. rT49wcp(C,(T0 *)ms327);
  4143. C->_ok=rT49skip1(C,'\73');
  4144. }
  4145. else {
  4146. C->_ok=rT49skip1(C,'\54');
  4147. }
  4148. /*FI*//*IF*/if (!(_name_list)) {
  4149. _name_list=ma(139,0,1,_name);
  4150. }
  4151. else {
  4152. rT139add_last((T139*)_name_list,_name);
  4153. }
  4154. /*FI*/_name=NULL;
  4155. _state=2;
  4156. }
  4157. /*FI*/goto l380;
  4158.  l384: ;
  4159. if (2 == iv1) goto l385;
  4160. goto l386;
  4161.  l385: ;
  4162. /*IF*/if (rT49a_identifier(C)) {
  4163. _name=rT67to_decl_name((T67*)rT49tmp_name());
  4164. _state=1;
  4165. /*IF*/if (((int)(C)->_arguments)) {
  4166. _rank=rT90rank_of((T90*)(C)->_arguments,_name);
  4167. /*IF*/if ((_rank)>(0)) {
  4168. /*UT*/(T43*)oRBC27eh;
  4169. rT43add_position(((T95*)_name)->_start_position);
  4170. /*UT*/(T43*)oRBC27eh;
  4171. rT43add_position(XrT47start_position(rT90name((T90*)(C)->_arguments,_rank)));
  4172. rT43error((T43*)oRBC27eh,(T0 *)ms328);
  4173. }
  4174. /*FI*/}
  4175. /*FI*/}
  4176.  else if ((((C)->_cc)==('\54'))||(((C)->_cc)==('\73'))) {
  4177. rT49wcp(C,(T0 *)ms256);
  4178. C->_ok=(rT49skip1(C,'\54'))||(rT49skip1(C,'\73'));
  4179. }
  4180. else {
  4181. _state=6;
  4182. }
  4183. /*FI*/goto l380;
  4184.  l386: ;
  4185. if (3 == iv1) goto l387;
  4186. goto l388;
  4187.  l387: ;
  4188. /*IF*/if (rT49a_type(C)) {
  4189. /*IF*/if (((int)_name_list)) {
  4190. {T140 *n=((T140*)new(140));
  4191. rT140make(n,_name_list,(C)->_last_type);
  4192. _declaration=(T0 *)n;}_name_list=NULL;
  4193. }
  4194. else {
  4195. {T92 *n=((T92*)new(92));
  4196. rT92make(n,_name,(C)->_last_type);
  4197. _declaration=(T0 *)n;}_name=NULL;
  4198. }
  4199. /*FI*//*IF*/if (!(_list)) {
  4200. _list=ma(141,0,1,_declaration);
  4201. }
  4202. else {
  4203. XrT141add_last(_list,_declaration);
  4204. }
  4205. /*FI*/_state=4;
  4206. }
  4207. else {
  4208. _state=6;
  4209. }
  4210. /*FI*/goto l380;
  4211.  l388: ;
  4212. /*IF*/if (((C)->_cc)==('\54')) {
  4213. rT49wcp(C,(T0 *)ms329);
  4214. C->_ok=rT49skip1(C,'\54');
  4215. _state=0;
  4216. }
  4217. else {
  4218. C->_ok=rT49skip1(C,'\73');
  4219. _state=0;
  4220. }
  4221. /*FI*/ l380: ;
  4222. }
  4223. }
  4224. /*IF*/if ((_state)==(6)) {
  4225. rT49fcp(C,(T0 *)ms330);
  4226. }
  4227.  else if (((int)_list)) {
  4228. {T137 *n=((T137*)new(137));
  4229. rT137make(n,a1,_list);
  4230. C->_local_vars=(T0 *)n;}
  4231. /*(IRF3*/(((T134*)oRBC49tmp_feature)->_local_vars)=((C)->_local_vars);
  4232. /*)*/}
  4233. /*FI*/}
  4234. int rT49a_local_variable(T49 *C){
  4235. int R=0;
  4236. int _rank=0;
  4237. /*IF*/if (((int)(C)->_local_vars)) {
  4238. _rank=rT137rank_of((T137*)(C)->_local_vars,rT49tmp_name());
  4239. /*IF*/if ((_rank)>(0)) {
  4240. C->_last_expression=rT67to_local_name((T67*)rT49tmp_name(),(C)->_local_vars,_rank);
  4241. R=1;
  4242. }
  4243. /*FI*/}
  4244. /*FI*/return R;
  4245. }
  4246. T0 * rT49a_compound2(T49 *C,T0* a1,T0* a2){
  4247. T0 * R=NULL;
  4248. T0 * _instruction=NULL;
  4249. T0* _list=NULL;
  4250. T0 * _hc=NULL;
  4251. _hc=rT49get_comments(C);
  4252. while (!(((C)->_cc)!=('\73'))) {
  4253. rT49wcp(C,(T0 *)ms236);
  4254. C->_ok=rT49skip1(C,'\73');
  4255. }
  4256. while (!((!(rT49a_instruction(C)))||((/*(IRF4*/((T43*)oRBC27eh)->_nb_errors/*)*/)>(10)))) {
  4257. _instruction=(C)->_last_instruction;
  4258. /*IF*/if (((C)->_cc)==('\50')) {
  4259. rT49wcp(C,(T0 *)ms240);
  4260. }
  4261. /*FI*/C->_ok=rT49skip1(C,'\73');
  4262. while (!(((C)->_cc)!=('\73'))) {
  4263. rT49wcp(C,(T0 *)ms236);
  4264. C->_ok=rT49skip1(C,'\73');
  4265. }
  4266. /*IF*/if ((/*(IRF4*/((T43*)oRBC27eh)->_nb_errors/*)*/)==(0)) {
  4267. /*IF*/if (!(_list)) {
  4268. _list=ma(215,0,1,XrT174add_comment(_instruction,rT49get_comments(C)));
  4269. }
  4270. else {
  4271. rT215add_last((T215*)_list,XrT174add_comment(_instruction,rT49get_comments(C)));
  4272. }
  4273. /*FI*/}
  4274. /*FI*/}
  4275. /*IF*/if (!(rT49a_keyword(C,a2))) {
  4276. /*UT*/(T43*)oRBC27eh;
  4277. rT43append((T0 *)ms347);
  4278. /*UT*/(T43*)oRBC27eh;
  4279. rT43append(a1);
  4280. /*UT*/(T43*)oRBC27eh;
  4281. rT43append((T0 *)ms348);
  4282. /*UT*/(T43*)oRBC27eh;
  4283. rT43append(a2);
  4284. rT49fcp(C,(T0 *)ms349);
  4285. }
  4286. /*FI*//*IF*/if ((((int)_hc))||(((int)_list))) {
  4287. {T138 *n=((T138*)new(138));
  4288. rT138make(n,_hc,_list);
  4289. R=(T0 *)n;}
  4290. }
  4291. /*FI*/return R;
  4292. }
  4293. T0 * rT49a_compound1(T49 *C,T0* a1){
  4294. T0 * R=NULL;
  4295. T0 * _instruction=NULL;
  4296. T0* _list=NULL;
  4297. T0 * _hc=NULL;
  4298. _hc=rT49get_comments(C);
  4299. while (!(((C)->_cc)!=('\73'))) {
  4300. rT49wcp(C,(T0 *)ms236);
  4301. C->_ok=rT49skip1(C,'\73');
  4302. }
  4303. while (!((!(rT49a_instruction(C)))||((/*(IRF4*/((T43*)oRBC27eh)->_nb_errors/*)*/)>(10)))) {
  4304. _instruction=(C)->_last_instruction;
  4305. /*IF*/if (((C)->_cc)==('\50')) {
  4306. rT49wcp(C,(T0 *)ms240);
  4307. }
  4308. /*FI*/C->_ok=rT49skip1(C,'\73');
  4309. while (!(((C)->_cc)!=('\73'))) {
  4310. rT49wcp(C,(T0 *)ms236);
  4311. C->_ok=rT49skip1(C,'\73');
  4312. }
  4313. /*IF*/if ((/*(IRF4*/((T43*)oRBC27eh)->_nb_errors/*)*/)==(0)) {
  4314. /*IF*/if (!(_list)) {
  4315. _list=ma(215,0,1,XrT174add_comment(_instruction,rT49get_comments(C)));
  4316. }
  4317. else {
  4318. rT215add_last((T215*)_list,XrT174add_comment(_instruction,rT49get_comments(C)));
  4319. }
  4320. /*FI*/}
  4321. /*FI*/}
  4322. /*IF*/if ((((int)_hc))||(((int)_list))) {
  4323. {T138 *n=((T138*)new(138));
  4324. rT138make(n,_hc,_list);
  4325. R=(T0 *)n;}
  4326. }
  4327. /*FI*/return R;
  4328. }
  4329. int rT49a_bit_constant(T49 *C){
  4330. int R=0;
  4331. T0* _sequence=NULL;
  4332. int _state=0;
  4333. /*IF*/if ((((C)->_cc)==('0'))||(((C)->_cc)==('1'))) {
  4334. {T7 *n=((T7*)new(7));
  4335. rT7make(n,16);
  4336. _sequence=(T0 *)n;}
  4337. rT7extend((T7*)_sequence,(C)->_cc);
  4338. while (!((_state)>(0))) {
  4339. rT49next_char(C);
  4340. {int iv1=(C)->_cc;
  4341. if ((48 <= iv1) && (iv1<= 49)) goto l390;
  4342. goto l391;
  4343.  l390: ;
  4344. rT7extend((T7*)_sequence,(C)->_cc);
  4345. goto l389;
  4346.  l391: ;
  4347. if (66 == iv1) goto l392;
  4348. if (98 == iv1) goto l392;
  4349. goto l393;
  4350.  l392: ;
  4351. {T75 *n=((T75*)new(75));
  4352. /*(IRF3*/((n)->_value)=(_sequence);
  4353. /*)*/C->_last_bit_constant=(T0 *)n;}
  4354. rT49next_char(C);
  4355. rT49skip_comments(C);
  4356. _state=1;
  4357. R=1;
  4358. goto l389;
  4359.  l393: ;
  4360. _state=((T7*)_sequence)->_count;
  4361. while (!((_state)==(0))) {
  4362. _state=(_state)-(1);
  4363. rT49prev_char(C);
  4364. }
  4365. _state=2;
  4366.  l389: ;
  4367. }
  4368. }
  4369. }
  4370. /*FI*/return R;
  4371. }
  4372. int rT3same_as(T3 C,char a1){
  4373. int R=0;
  4374. R=(rT3to_lower(C))==(rT3to_lower(a1));
  4375. return R;
  4376. }
  4377. char rT3to_upper(T3 C){
  4378. char R='\0';
  4379. /*IF*/if ((((unsigned char)C))<(97)) {
  4380. R=C;
  4381. }
  4382.  else if ((((unsigned char)C))>(122)) {
  4383. R=C;
  4384. }
  4385. else {
  4386. R=(((unsigned char)C))-(32);
  4387. }
  4388. /*FI*/return R;
  4389. }
  4390. int rT3is_digit(T3 C){
  4391. int R=0;
  4392. {int iv1=C;
  4393. if ((48 <= iv1) && (iv1<= 57)) goto l395;
  4394. goto l396;
  4395.  l395: ;
  4396. R=1;
  4397. goto l394;
  4398.  l396: ;
  4399.  l394: ;
  4400. }
  4401. return R;
  4402. }
  4403. int rT3is_letter(T3 C){
  4404. int R=0;
  4405. {int iv1=C;
  4406. if ((65 <= iv1) && (iv1<= 90)) goto l398;
  4407. if ((97 <= iv1) && (iv1<= 122)) goto l398;
  4408. goto l399;
  4409.  l398: ;
  4410. R=1;
  4411. goto l397;
  4412.  l399: ;
  4413.  l397: ;
  4414. }
  4415. return R;
  4416. }
  4417. int rT3is_separator(T3 C){
  4418. int R=0;
  4419. {int iv1=C;
  4420. if (0 == iv1) goto l401;
  4421. if ((9 <= iv1) && (iv1<= 10)) goto l401;
  4422. if (13 == iv1) goto l401;
  4423. if (32 == iv1) goto l401;
  4424. goto l402;
  4425.  l401: ;
  4426. R=1;
  4427. goto l400;
  4428.  l402: ;
  4429.  l400: ;
  4430. }
  4431. return R;
  4432. }
  4433. int rT3value(T3 C){
  4434. int R=0;
  4435. R=(((unsigned char)C))-(48);
  4436. return R;
  4437. }
  4438. char rT3to_lower(T3 C){
  4439. char R='\0';
  4440. /*IF*/if ((((unsigned char)C))<(65)) {
  4441. R=C;
  4442. }
  4443.  else if ((((unsigned char)C))>(90)) {
  4444. R=C;
  4445. }
  4446. else {
  4447. R=(((unsigned char)C))+(32);
  4448. }
  4449. /*FI*/return R;
  4450. }
  4451. void rT171bracketed_print(T171 *C){
  4452. rT259put_character((T259*)oRBC27fmt,'\50');
  4453. rT171pretty_print(C);
  4454. rT259put_character((T259*)oRBC27fmt,'\51');
  4455. }
  4456. void rT171error(/*C*/T0 * a1,T0* a2){
  4457. /*UT*/(T43*)oRBC27eh;
  4458. rT43add_position(a1);
  4459. rT43error((T43*)oRBC27eh,a2);
  4460. }
  4461. T0 * rT171add_comment(T171 *C,T0 * a1){
  4462. T0 * R=NULL;
  4463. /*IF*/if ((!(a1))||((rT57count((T57*)a1))==(0))) {
  4464. R=(T0 *)C;
  4465. }
  4466. else {
  4467. {T218 *n=((T218*)new(218));
  4468. rT218make(n,(T0 *)C,a1);
  4469. R=(T0 *)n;}}
  4470. /*FI*/return R;
  4471. }
  4472. void rT171print_as_target(T171 *C){
  4473. rT171error(rT171start_position(C),(T0 *)ms504);
  4474. }
  4475. T0 * rT171start_position(T171 *C){
  4476. T0 * R=NULL;
  4477. R=XrT65start_position((C)->_feature_name);
  4478. return R;
  4479. }
  4480. void rT171pretty_print(T171 *C){
  4481. rT259put_character((T259*)oRBC27fmt,'\44');
  4482. XrT65pretty_print((C)->_feature_name);
  4483. }
  4484. void rT171copy(T171 *C,T0 * a1){
  4485. /*IF*//*AF*//*AE*/
  4486. memcpy(C,a1,s[C->id]);
  4487. /*FI*/}
  4488. T0 * rT203first_name(T203 *C){
  4489. T0 * R=NULL;
  4490. R=rT126item((T126*)(C)->_names,1);
  4491. return R;
  4492. }
  4493. void rT203error(/*C*/T0 * a1,T0* a2){
  4494. /*UT*/(T43*)oRBC27eh;
  4495. rT43add_position(a1);
  4496. rT43error((T43*)oRBC27eh,a2);
  4497. }
  4498. T0 * rT203start_position(T203 *C){
  4499. T0 * R=NULL;
  4500. R=XrT65start_position(rT203first_name(C));
  4501. return R;
  4502. }
  4503. void rT203pretty_print_arguments(T203 *C){
  4504. /*IF*/if (((int)(C)->_arguments)) {
  4505. rT90pretty_print((T90*)(C)->_arguments);
  4506. }
  4507. /*FI*/}
  4508. void rT203pretty_print_one_name(/*C*/T0 * a1){
  4509. /*IF*/if (XrT65is_frozen(a1)) {
  4510. rT259keyword((T259*)oRBC27fmt,(T0 *)ms511);
  4511. }
  4512. /*FI*/XrT65pretty_print(a1);
  4513. }
  4514. void rT203pretty_print_names(T203 *C){
  4515. int _i=0;
  4516. _i=1;
  4517. rT203pretty_print_one_name(rT126item((T126*)(C)->_names,_i));
  4518. _i=(_i)+(1);
  4519. while (!((_i)>(rT126count((T126*)(C)->_names)))) {
  4520. rT259put_string((T259*)oRBC27fmt,(T0 *)ms512);
  4521. rT203pretty_print_one_name(rT126item((T126*)(C)->_names,_i));
  4522. _i=(_i)+(1);
  4523. }
  4524. }
  4525. void rT203pretty_print_profile(T203 *C){
  4526. rT203pretty_print_names(C);
  4527. /*(IRF3*/(((T259*)oRBC27fmt)->_indent_level)=(2);
  4528. /*)*/rT203pretty_print_arguments(C);
  4529. /*(IRF3*/(((T259*)oRBC27fmt)->_indent_level)=(3);
  4530. /*)*//*IF*/if (((int)(C)->_result_type)) {
  4531. rT259put_string((T259*)oRBC27fmt,(T0 *)ms513);
  4532. XrT56pretty_print((C)->_result_type);
  4533. }
  4534. /*FI*/}
  4535. void rT203pretty_print(T203 *C){
  4536. T0 * _fn=NULL;
  4537. /*(IRF3*/(((T259*)oRBC27fmt)->_indent_level)=(1);
  4538. /*)*/rT259indent((T259*)oRBC27fmt);
  4539. rT203pretty_print_profile(C);
  4540. rT259keyword((T259*)oRBC27fmt,(T0 *)ms517);
  4541. /*IF*/if (((int)(C)->_obsolete_mark)) {
  4542. /*(IRF3*/(((T259*)oRBC27fmt)->_indent_level)=(2);
  4543. /*)*/rT259indent((T259*)oRBC27fmt);
  4544. rT259keyword((T259*)oRBC27fmt,(T0 *)ms518);
  4545. rT74pretty_print((T74*)(C)->_obsolete_mark);
  4546. }
  4547. /*FI*//*(IRF3*/(((T259*)oRBC27fmt)->_indent_level)=(2);
  4548. /*)*/rT259indent((T259*)oRBC27fmt);
  4549. /*IF*/if (((int)(C)->_header_comment)) {
  4550. rT57pretty_print((T57*)(C)->_header_comment);
  4551. }
  4552. /*FI*//*IF*/if (((int)(C)->_require_assertion)) {
  4553. /*(IRF3*/(((T259*)oRBC27fmt)->_indent_level)=(2);
  4554. /*)*/rT135pretty_print((T135*)(C)->_require_assertion);
  4555. }
  4556. /*FI*//*(IRF3*/(((T259*)oRBC27fmt)->_indent_level)=(2);
  4557. /*)*/rT259indent((T259*)oRBC27fmt);
  4558. /*(IRF3*/rT259put_string((T259*)oRBC27fmt,(T0 *)ms521);
  4559. /*)*//*IF*/if (((int)(C)->_ensure_assertion)) {
  4560. /*(IRF3*/(((T259*)oRBC27fmt)->_indent_level)=(2);
  4561. /*)*/rT155pretty_print((T155*)(C)->_ensure_assertion);
  4562. }
  4563. /*FI*//*IF*/if (((int)(C)->_rescue_compound)) {
  4564. /*(IRF3*/(((T259*)oRBC27fmt)->_indent_level)=(2);
  4565. /*)*/rT259indent((T259*)oRBC27fmt);
  4566. rT259keyword((T259*)oRBC27fmt,(T0 *)ms524);
  4567. rT138pretty_print((T138*)(C)->_rescue_compound);
  4568. }
  4569. /*FI*//*(IRF3*/(((T259*)oRBC27fmt)->_indent_level)=(2);
  4570. /*)*/rT259indent((T259*)oRBC27fmt);
  4571. rT259keyword((T259*)oRBC27fmt,(T0 *)ms525);
  4572. /*IF*/if ((((int)(C)->_end_comment))&&(!(rT57dummy((T57*)(C)->_end_comment)))) {
  4573. rT57pretty_print((T57*)(C)->_end_comment);
  4574. }
  4575.  else if (((T259*)oRBC27fmt)->_print_end_routine) {
  4576. rT259put_string((T259*)oRBC27fmt,(T0 *)ms527);
  4577. _fn=rT203first_name(C);
  4578. /*IF*/if (XrT65is_prefix_name(_fn)) {
  4579. rT259keyword((T259*)oRBC27fmt,(T0 *)ms528);
  4580. rT259put_character((T259*)oRBC27fmt,'\42');
  4581. rT259put_string((T259*)oRBC27fmt,XrT65to_string(_fn));
  4582. rT259put_character((T259*)oRBC27fmt,'\42');
  4583. }
  4584.  else if (XrT65is_infix_name(_fn)) {
  4585. rT259keyword((T259*)oRBC27fmt,(T0 *)ms529);
  4586. rT259put_character((T259*)oRBC27fmt,'\42');
  4587. rT259put_string((T259*)oRBC27fmt,XrT65to_string(_fn));
  4588. rT259put_character((T259*)oRBC27fmt,'\42');
  4589. }
  4590. else {
  4591. rT259put_string((T259*)oRBC27fmt,XrT65to_string(_fn));
  4592. }
  4593. /*FI*/}
  4594. /*FI*/rT259put_character((T259*)oRBC27fmt,'\12');
  4595. }
  4596. void rT203add_into(T203 *C,T0 * a1){
  4597. T0 * _fn=NULL;
  4598. int _i=0;
  4599. C->_base_class=rT44base_class((T44*)XrT65start_position(rT126item((T126*)(C)->_names,1)));
  4600. _i=1;
  4601. while (!((_i)>(rT126count((T126*)(C)->_names)))) {
  4602. _fn=rT126item((T126*)(C)->_names,_i);
  4603. /*IF*/if (rT59has((T59*)a1,XrT65to_key(_fn))) {
  4604. _fn=XrT60first_name(rT59at((T59*)a1,XrT65to_key(_fn)));
  4605. /*UT*/(T43*)oRBC27eh;
  4606. rT43add_position(XrT65start_position(_fn));
  4607. /*UT*/(T43*)oRBC27eh;
  4608. rT43add_position(XrT65start_position(rT126item((T126*)(C)->_names,_i)));
  4609. rT43error((T43*)oRBC27eh,(T0 *)ms417);
  4610. /*UT*/(T43*)oRBC27eh;
  4611. rT43append(XrT65to_string(_fn));
  4612. rT43error((T43*)oRBC27eh,(T0 *)ms37);
  4613. }
  4614. else {
  4615. rT59put((T59*)a1,(T0 *)C,XrT65to_key(_fn));
  4616. }
  4617. /*FI*/_i=(_i)+(1);
  4618. }
  4619. }
  4620. void rT203set_header_comment(T203 *C,T0 * a1){
  4621. /*IF*/if ((((int)a1))&&((rT57count((T57*)a1))>(1))) {
  4622. C->_end_comment=a1;
  4623. }
  4624. /*FI*/}
  4625. void rT203copy(T203 *C,T0 * a1){
  4626. /*IF*//*AF*//*AE*/
  4627. memcpy(C,a1,s[C->id]);
  4628. /*FI*/}
  4629. void rT203set_rescue_compound(T203 *C,T0 * a1){
  4630. /*IF*/if ((((int)a1))&&(/*(IRF4*/1/*)*/)) {
  4631. rT203error(rT203start_position(C),(T0 *)ms400);
  4632. }
  4633. /*FI*/C->_rescue_compound=a1;
  4634. }
  4635. void rT203make_e_feature(T203 *C,T0 * a1,T0 * a2){
  4636. C->_names=a1;
  4637. C->_result_type=a2;
  4638. }
  4639. void rT203make_routine(T203 *C,T0 * a1,T0 * a2,T0 * a3,T0 * a4,T0 * a5){
  4640. rT203make_e_feature(C,a1,NULL);
  4641. C->_header_comment=a4;
  4642. C->_arguments=a2;
  4643. C->_obsolete_mark=a3;
  4644. C->_require_assertion=a5;
  4645. }
  4646. void rT203make(T203 *C,T0 * a1,T0 * a2,T0 * a3,T0 * a4,T0 * a5,T0 * a6){
  4647. rT203make_routine(C,a1,a2,a4,a5,a6);
  4648. C->_result_type=a3;
  4649. }
  4650. T0 * rT202first_name(T202 *C){
  4651. T0 * R=NULL;
  4652. R=rT126item((T126*)(C)->_names,1);
  4653. return R;
  4654. }
  4655. void rT202error(/*C*/T0 * a1,T0* a2){
  4656. /*UT*/(T43*)oRBC27eh;
  4657. rT43add_position(a1);
  4658. rT43error((T43*)oRBC27eh,a2);
  4659. }
  4660. T0 * rT202start_position(T202 *C){
  4661. T0 * R=NULL;
  4662. R=XrT65start_position(rT202first_name(C));
  4663. return R;
  4664. }
  4665. void rT202pretty_print_arguments(T202 *C){
  4666. /*IF*/if (((int)(C)->_arguments)) {
  4667. rT90pretty_print((T90*)(C)->_arguments);
  4668. }
  4669. /*FI*/}
  4670. void rT202pretty_print_one_name(/*C*/T0 * a1){
  4671. /*IF*/if (XrT65is_frozen(a1)) {
  4672. rT259keyword((T259*)oRBC27fmt,(T0 *)ms511);
  4673. }
  4674. /*FI*/XrT65pretty_print(a1);
  4675. }
  4676. void rT202pretty_print_names(T202 *C){
  4677. int _i=0;
  4678. _i=1;
  4679. rT202pretty_print_one_name(rT126item((T126*)(C)->_names,_i));
  4680. _i=(_i)+(1);
  4681. while (!((_i)>(rT126count((T126*)(C)->_names)))) {
  4682. rT259put_string((T259*)oRBC27fmt,(T0 *)ms512);
  4683. rT202pretty_print_one_name(rT126item((T126*)(C)->_names,_i));
  4684. _i=(_i)+(1);
  4685. }
  4686. }
  4687. void rT202pretty_print_profile(T202 *C){
  4688. rT202pretty_print_names(C);
  4689. /*(IRF3*/(((T259*)oRBC27fmt)->_indent_level)=(2);
  4690. /*)*/rT202pretty_print_arguments(C);
  4691. /*(IRF3*/(((T259*)oRBC27fmt)->_indent_level)=(3);
  4692. /*)*//*IF*/if (((int)(C)->_result_type)) {
  4693. rT259put_string((T259*)oRBC27fmt,(T0 *)ms513);
  4694. XrT56pretty_print((C)->_result_type);
  4695. }
  4696. /*FI*/}
  4697. void rT202pretty_print(T202 *C){
  4698. T0 * _fn=NULL;
  4699. /*(IRF3*/(((T259*)oRBC27fmt)->_indent_level)=(1);
  4700. /*)*/rT259indent((T259*)oRBC27fmt);
  4701. rT202pretty_print_profile(C);
  4702. rT259keyword((T259*)oRBC27fmt,(T0 *)ms517);
  4703. /*IF*/if (((int)(C)->_obsolete_mark)) {
  4704. /*(IRF3*/(((T259*)oRBC27fmt)->_indent_level)=(2);
  4705. /*)*/rT259indent((T259*)oRBC27fmt);
  4706. rT259keyword((T259*)oRBC27fmt,(T0 *)ms518);
  4707. rT74pretty_print((T74*)(C)->_obsolete_mark);
  4708. }
  4709. /*FI*//*(IRF3*/(((T259*)oRBC27fmt)->_indent_level)=(2);
  4710. /*)*/rT259indent((T259*)oRBC27fmt);
  4711. /*IF*/if (((int)(C)->_header_comment)) {
  4712. rT57pretty_print((T57*)(C)->_header_comment);
  4713. }
  4714. /*FI*//*IF*/if (((int)(C)->_require_assertion)) {
  4715. /*(IRF3*/(((T259*)oRBC27fmt)->_indent_level)=(2);
  4716. /*)*/rT135pretty_print((T135*)(C)->_require_assertion);
  4717. }
  4718. /*FI*//*(IRF3*/(((T259*)oRBC27fmt)->_indent_level)=(2);
  4719. /*)*/rT259indent((T259*)oRBC27fmt);
  4720. /*(IRF3*/rT259put_string((T259*)oRBC27fmt,(T0 *)ms521);
  4721. /*)*//*IF*/if (((int)(C)->_ensure_assertion)) {
  4722. /*(IRF3*/(((T259*)oRBC27fmt)->_indent_level)=(2);
  4723. /*)*/rT155pretty_print((T155*)(C)->_ensure_assertion);
  4724. }
  4725. /*FI*//*IF*/if (((int)(C)->_rescue_compound)) {
  4726. /*(IRF3*/(((T259*)oRBC27fmt)->_indent_level)=(2);
  4727. /*)*/rT259indent((T259*)oRBC27fmt);
  4728. rT259keyword((T259*)oRBC27fmt,(T0 *)ms524);
  4729. rT138pretty_print((T138*)(C)->_rescue_compound);
  4730. }
  4731. /*FI*//*(IRF3*/(((T259*)oRBC27fmt)->_indent_level)=(2);
  4732. /*)*/rT259indent((T259*)oRBC27fmt);
  4733. rT259keyword((T259*)oRBC27fmt,(T0 *)ms525);
  4734. /*IF*/if ((((int)(C)->_end_comment))&&(!(rT57dummy((T57*)(C)->_end_comment)))) {
  4735. rT57pretty_print((T57*)(C)->_end_comment);
  4736. }
  4737.  else if (((T259*)oRBC27fmt)->_print_end_routine) {
  4738. rT259put_string((T259*)oRBC27fmt,(T0 *)ms527);
  4739. _fn=rT202first_name(C);
  4740. /*IF*/if (XrT65is_prefix_name(_fn)) {
  4741. rT259keyword((T259*)oRBC27fmt,(T0 *)ms528);
  4742. rT259put_character((T259*)oRBC27fmt,'\42');
  4743. rT259put_string((T259*)oRBC27fmt,XrT65to_string(_fn));
  4744. rT259put_character((T259*)oRBC27fmt,'\42');
  4745. }
  4746.  else if (XrT65is_infix_name(_fn)) {
  4747. rT259keyword((T259*)oRBC27fmt,(T0 *)ms529);
  4748. rT259put_character((T259*)oRBC27fmt,'\42');
  4749. rT259put_string((T259*)oRBC27fmt,XrT65to_string(_fn));
  4750. rT259put_character((T259*)oRBC27fmt,'\42');
  4751. }
  4752. else {
  4753. rT259put_string((T259*)oRBC27fmt,XrT65to_string(_fn));
  4754. }
  4755. /*FI*/}
  4756. /*FI*/rT259put_character((T259*)oRBC27fmt,'\12');
  4757. }
  4758. void rT202add_into(T202 *C,T0 * a1){
  4759. T0 * _fn=NULL;
  4760. int _i=0;
  4761. C->_base_class=rT44base_class((T44*)XrT65start_position(rT126item((T126*)(C)->_names,1)));
  4762. _i=1;
  4763. while (!((_i)>(rT126count((T126*)(C)->_names)))) {
  4764. _fn=rT126item((T126*)(C)->_names,_i);
  4765. /*IF*/if (rT59has((T59*)a1,XrT65to_key(_fn))) {
  4766. _fn=XrT60first_name(rT59at((T59*)a1,XrT65to_key(_fn)));
  4767. /*UT*/(T43*)oRBC27eh;
  4768. rT43add_position(XrT65start_position(_fn));
  4769. /*UT*/(T43*)oRBC27eh;
  4770. rT43add_position(XrT65start_position(rT126item((T126*)(C)->_names,_i)));
  4771. rT43error((T43*)oRBC27eh,(T0 *)ms417);
  4772. /*UT*/(T43*)oRBC27eh;
  4773. rT43append(XrT65to_string(_fn));
  4774. rT43error((T43*)oRBC27eh,(T0 *)ms37);
  4775. }
  4776. else {
  4777. rT59put((T59*)a1,(T0 *)C,XrT65to_key(_fn));
  4778. }
  4779. /*FI*/_i=(_i)+(1);
  4780. }
  4781. }
  4782. void rT202set_header_comment(T202 *C,T0 * a1){
  4783. /*IF*/if ((((int)a1))&&((rT57count((T57*)a1))>(1))) {
  4784. C->_end_comment=a1;
  4785. }
  4786. /*FI*/}
  4787. void rT202copy(T202 *C,T0 * a1){
  4788. /*IF*//*AF*//*AE*/
  4789. memcpy(C,a1,s[C->id]);
  4790. /*FI*/}
  4791. void rT202set_rescue_compound(T202 *C,T0 * a1){
  4792. /*IF*/if ((((int)a1))&&(/*(IRF4*/1/*)*/)) {
  4793. rT202error(rT202start_position(C),(T0 *)ms400);
  4794. }
  4795. /*FI*/C->_rescue_compound=a1;
  4796. }
  4797. void rT202make_e_feature(T202 *C,T0 * a1,T0 * a2){
  4798. C->_names=a1;
  4799. C->_result_type=a2;
  4800. }
  4801.